Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Side by Side Diff: mojo/public/rust/tests/validation.rs

Issue 2250183003: Make the fuchsia mojo/public repo the source of truth. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/public/rust/tests/util/mojom_validation.rs ('k') | mojo/public/third_party/README.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 //! Tests encoding and decoding functionality in the bindings package
6 //!
7 //! Test failure is defined as the function returning via panicking
8 //! and the result being caught in the test! macro. If a test function
9 //! returns without panicking, it is assumed to pass.
10
11 #[macro_use]
12 extern crate mojo;
13
14 use mojo::bindings::mojom::MojomMessageOption;
15 use mojo::system;
16
17 #[macro_use]
18 mod util;
19
20 use util::mojom_validation::*;
21
22 /// This macro is a wrapper for the tests! macro as it takes advantage of the
23 /// shared code between tests.
24 ///
25 /// Given a test name, it will generate a test function. In this test function
26 /// we perform the following steps:
27 /// 1. Decode the header of the validation input.
28 /// 2. Decode the payload of the validation input, expecting a validation
29 /// error.
30 ///
31 macro_rules! validation_tests {
32 ($($name:ident => $req_type:ident;)*) => {
33 tests! {
34 $(
35 fn $name() {
36 let data = include_str!(concat!("../../interfaces/bindings/tests /data/validation/",
37 stringify!($name),
38 ".data"));
39 let expected = include_str!(concat!("../../interfaces/bindings/t ests/data/validation/",
40 stringify!($name),
41 ".expected")).trim();
42 match util::parse_validation_test(data) {
43 Ok((data, num_handles)) => {
44 let mut mock_handles = Vec::with_capacity(num_handles);
45 for _ in 0..num_handles {
46 mock_handles.push(unsafe { system::acquire(0) });
47 }
48 match $req_type::decode_message(data, mock_handles) {
49 Ok(_) => panic!("Should not be valid!"),
50 Err(err) => assert_eq!(err.as_str(), expected),
51 }
52 },
53 Err(msg) => panic!("Error: {}", msg),
54 }
55 }
56 )*
57 }
58 }
59 }
60
61 validation_tests! {
62 conformance_empty => ConformanceTestInterfaceRequestOption;
63 conformance_mthd0_incomplete_struct => ConformanceTestInterfaceRequestOption ;
64 conformance_mthd0_incomplete_struct_header => ConformanceTestInterfaceReques tOption;
65 conformance_mthd0_invalid_request_flags => ConformanceTestInterfaceRequestOp tion;
66 conformance_mthd0_invalid_request_flags2 => ConformanceTestInterfaceRequestO ption;
67 conformance_mthd0_struct_num_bytes_huge => ConformanceTestInterfaceRequestOp tion;
68 conformance_mthd0_struct_num_bytes_less_than_min_requirement => ConformanceT estInterfaceRequestOption;
69 conformance_mthd0_struct_num_bytes_less_than_struct_header => ConformanceTes tInterfaceRequestOption;
70 conformance_mthd10_null_keys => ConformanceTestInterfaceRequestOption;
71 conformance_mthd10_null_values => ConformanceTestInterfaceRequestOption;
72 conformance_mthd10_one_null_key => ConformanceTestInterfaceRequestOption;
73 conformance_mthd10_unequal_array_size => ConformanceTestInterfaceRequestOpti on;
74 conformance_mthd11_num_bytes_version_mismatch_1 => ConformanceTestInterfaceR equestOption;
75 conformance_mthd11_num_bytes_version_mismatch_2 => ConformanceTestInterfaceR equestOption;
76 conformance_mthd12_invalid_request_flags => ConformanceTestInterfaceRequestO ption;
77 conformance_mthd14_unexpected_null_array_in_union => ConformanceTestInterfac eRequestOption;
78 conformance_mthd14_unexpected_null_map_in_union => ConformanceTestInterfaceR equestOption;
79 conformance_mthd14_unexpected_null_struct_in_union => ConformanceTestInterfa ceRequestOption;
80 conformance_mthd14_unexpected_null_union_in_union => ConformanceTestInterfac eRequestOption;
81 conformance_mthd15_unexpected_null_union_in_array => ConformanceTestInterfac eRequestOption;
82 conformance_mthd1_misaligned_struct => ConformanceTestInterfaceRequestOption ;
83 conformance_mthd1_struct_pointer_overflow => ConformanceTestInterfaceRequest Option;
84 conformance_mthd1_unexpected_null_struct => ConformanceTestInterfaceRequestO ption;
85 conformance_mthd2_multiple_pointers_to_same_struct => ConformanceTestInterfa ceRequestOption;
86 conformance_mthd2_overlapped_objects => ConformanceTestInterfaceRequestOptio n;
87 conformance_mthd2_wrong_layout_order => ConformanceTestInterfaceRequestOptio n;
88 conformance_mthd3_array_num_bytes_huge => ConformanceTestInterfaceRequestOpt ion;
89 conformance_mthd3_array_num_bytes_less_than_array_header => ConformanceTestI nterfaceRequestOption;
90 conformance_mthd3_array_num_bytes_less_than_necessary_size => ConformanceTes tInterfaceRequestOption;
91 conformance_mthd3_array_pointer_overflow => ConformanceTestInterfaceRequestO ption;
92 conformance_mthd3_incomplete_array => ConformanceTestInterfaceRequestOption;
93 conformance_mthd3_incomplete_array_header => ConformanceTestInterfaceRequest Option;
94 conformance_mthd3_misaligned_array => ConformanceTestInterfaceRequestOption;
95 conformance_mthd3_unexpected_null_array => ConformanceTestInterfaceRequestOp tion;
96 conformance_mthd4_multiple_pointers_to_same_array => ConformanceTestInterfac eRequestOption;
97 conformance_mthd4_overlapped_objects => ConformanceTestInterfaceRequestOptio n;
98 conformance_mthd4_wrong_layout_order => ConformanceTestInterfaceRequestOptio n;
99 conformance_mthd5_handle_out_of_range => ConformanceTestInterfaceRequestOpti on;
100 conformance_mthd5_multiple_handles_with_same_value_1 => ConformanceTestInter faceRequestOption;
101 conformance_mthd5_multiple_handles_with_same_value_2 => ConformanceTestInter faceRequestOption;
102 conformance_mthd5_unexpected_invalid_handle => ConformanceTestInterfaceReque stOption;
103 conformance_mthd5_wrong_handle_order => ConformanceTestInterfaceRequestOptio n;
104 conformance_mthd6_nested_array_num_bytes_less_than_necessary_size => Conform anceTestInterfaceRequestOption;
105 conformance_mthd7_unexpected_null_fixed_array => ConformanceTestInterfaceReq uestOption;
106 conformance_mthd7_unmatched_array_elements => ConformanceTestInterfaceReques tOption;
107 conformance_mthd7_unmatched_array_elements_nested => ConformanceTestInterfac eRequestOption;
108 conformance_mthd8_array_num_bytes_overflow => ConformanceTestInterfaceReques tOption;
109 conformance_mthd8_unexpected_null_array => ConformanceTestInterfaceRequestOp tion;
110 conformance_mthd8_unexpected_null_string => ConformanceTestInterfaceRequestO ption;
111 conformance_mthd9_unexpected_null_array => ConformanceTestInterfaceRequestOp tion;
112 boundscheck_msghdr_no_such_method => BoundsCheckTestInterfaceRequestOption;
113 conformance_msghdr_incomplete_struct => ConformanceTestInterfaceRequestOptio n;
114 conformance_msghdr_incomplete_struct_header => ConformanceTestInterfaceReque stOption;
115 conformance_msghdr_invalid_flag_combo => ConformanceTestInterfaceRequestOpti on;
116 conformance_msghdr_missing_request_id => ConformanceTestInterfaceRequestOpti on;
117 conformance_msghdr_no_such_method => ConformanceTestInterfaceRequestOption;
118 conformance_msghdr_num_bytes_huge => ConformanceTestInterfaceRequestOption;
119 conformance_msghdr_num_bytes_less_than_min_requirement => ConformanceTestInt erfaceRequestOption;
120 conformance_msghdr_num_bytes_less_than_struct_header => ConformanceTestInter faceRequestOption;
121 conformance_msghdr_num_bytes_version_mismatch_1 => ConformanceTestInterfaceR equestOption;
122 conformance_msghdr_num_bytes_version_mismatch_2 => ConformanceTestInterfaceR equestOption;
123 conformance_msghdr_num_bytes_version_mismatch_3 => ConformanceTestInterfaceR equestOption;
124 resp_boundscheck_msghdr_no_such_method => BoundsCheckTestInterfaceResponseOp tion;
125 resp_conformance_msghdr_invalid_response_flags1 => ConformanceTestInterfaceR esponseOption;
126 resp_conformance_msghdr_invalid_response_flags2 => ConformanceTestInterfaceR esponseOption;
127 resp_conformance_msghdr_no_such_method => ConformanceTestInterfaceResponseOp tion;
128 integration_intf_resp_mthd0_unexpected_array_header => IntegrationTestInterf aceResponseOption;
129 integration_intf_rqst_mthd0_unexpected_struct_header => IntegrationTestInter faceRequestOption;
130 integration_msghdr_invalid_flags => IntegrationTestInterfaceRequestOption;
131 }
OLDNEW
« no previous file with comments | « mojo/public/rust/tests/util/mojom_validation.rs ('k') | mojo/public/third_party/README.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698