|
@@ -1,49 +1,42 @@
|
|
|
-process main {
|
|
|
|
|
- var(@struct_encode({{@u8, "0"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\x00"));
|
|
|
|
|
- var(@struct_encode({{@u8, "254"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFE"));
|
|
|
|
|
- var(@struct_encode({{@u8, "255"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFF"));
|
|
|
|
|
-
|
|
|
|
|
- var(@struct_encode({{@u16b, "0"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\x00\x00"));
|
|
|
|
|
- var(@struct_encode({{@u16l, "0"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\x00\x00"));
|
|
|
|
|
- var(@struct_encode({{@u16b, "65534"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFF\xFE"));
|
|
|
|
|
- var(@struct_encode({{@u16l, "65534"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFE\xFF"));
|
|
|
|
|
- var(@struct_encode({{@u16b, "65535"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFF\xFF"));
|
|
|
|
|
- var(@struct_encode({{@u16l, "65535"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFF\xFF"));
|
|
|
|
|
-
|
|
|
|
|
- var(@struct_encode({{@u32b, "0"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\x00\x00\x00\x00"));
|
|
|
|
|
- var(@struct_encode({{@u32l, "0"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\x00\x00\x00\x00"));
|
|
|
|
|
- var(@struct_encode({{@u32b, "4294967294"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFF\xFF\xFF\xFE"));
|
|
|
|
|
- var(@struct_encode({{@u32l, "4294967294"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFE\xFF\xFF\xFF"));
|
|
|
|
|
- var(@struct_encode({{@u32b, "4294967295"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFF\xFF\xFF\xFF"));
|
|
|
|
|
- var(@struct_encode({{@u32l, "4294967295"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFF\xFF\xFF\xFF"));
|
|
|
|
|
-
|
|
|
|
|
- var(@struct_encode({{@u64b, "0"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\x00\x00\x00\x00\x00\x00\x00\x00"));
|
|
|
|
|
- var(@struct_encode({{@u64l, "0"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\x00\x00\x00\x00\x00\x00\x00\x00"));
|
|
|
|
|
- var(@struct_encode({{@u64b, "18446744073709551614"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE"));
|
|
|
|
|
- var(@struct_encode({{@u64l, "18446744073709551614"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFE\xFF\xFF\xFF\xFF\xFF\xFF\xFF"));
|
|
|
|
|
- var(@struct_encode({{@u64b, "18446744073709551615"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"));
|
|
|
|
|
- var(@struct_encode({{@u64l, "18446744073709551615"}})) x;
|
|
|
|
|
- assert(@val_equal(x, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"));
|
|
|
|
|
|
|
+template test_one {
|
|
|
|
|
+ var(@struct_encode({{_arg0, _arg1}})) encoded;
|
|
|
|
|
+ assert(@val_equal(encoded, _arg2));
|
|
|
|
|
+
|
|
|
|
|
+ var(@struct_decode({_arg0}, encoded)) decoded;
|
|
|
|
|
+ assert(@val_equal(decoded, {_arg1}));
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
+process main {
|
|
|
|
|
+ call(@test_one, {@u8, "0", "\x00"});
|
|
|
|
|
+ call(@test_one, {@u8, "254", "\xFE"});
|
|
|
|
|
+ call(@test_one, {@u8, "255", "\xFF"});
|
|
|
|
|
+
|
|
|
|
|
+ call(@test_one, {@u16b, "0", "\x00\x00"});
|
|
|
|
|
+ call(@test_one, {@u16l, "0", "\x00\x00"});
|
|
|
|
|
+ call(@test_one, {@u16b, "65534", "\xFF\xFE"});
|
|
|
|
|
+ call(@test_one, {@u16l, "65534", "\xFE\xFF"});
|
|
|
|
|
+ call(@test_one, {@u16b, "65535", "\xFF\xFF"});
|
|
|
|
|
+ call(@test_one, {@u16l, "65535", "\xFF\xFF"});
|
|
|
|
|
+
|
|
|
|
|
+ call(@test_one, {@u32b, "0", "\x00\x00\x00\x00"});
|
|
|
|
|
+ call(@test_one, {@u32l, "0", "\x00\x00\x00\x00"});
|
|
|
|
|
+ call(@test_one, {@u32b, "4294967294", "\xFF\xFF\xFF\xFE"});
|
|
|
|
|
+ call(@test_one, {@u32l, "4294967294", "\xFE\xFF\xFF\xFF"});
|
|
|
|
|
+ call(@test_one, {@u32b, "4294967295", "\xFF\xFF\xFF\xFF"});
|
|
|
|
|
+ call(@test_one, {@u32l, "4294967295", "\xFF\xFF\xFF\xFF"});
|
|
|
|
|
+
|
|
|
|
|
+ call(@test_one, {@u64b, "0", "\x00\x00\x00\x00\x00\x00\x00\x00"});
|
|
|
|
|
+ call(@test_one, {@u64l, "0", "\x00\x00\x00\x00\x00\x00\x00\x00"});
|
|
|
|
|
+ call(@test_one, {@u64b, "18446744073709551614", "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE"});
|
|
|
|
|
+ call(@test_one, {@u64l, "18446744073709551614", "\xFE\xFF\xFF\xFF\xFF\xFF\xFF\xFF"});
|
|
|
|
|
+ call(@test_one, {@u64b, "18446744073709551615", "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"});
|
|
|
|
|
+ call(@test_one, {@u64l, "18446744073709551615", "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"});
|
|
|
|
|
+
|
|
|
|
|
+ var(@struct_encode({{@u8, "4"}, {@u16l, "1000"}})) encoded;
|
|
|
|
|
+ assert(@val_equal(encoded, "\x04\xE8\x03"));
|
|
|
|
|
+
|
|
|
|
|
+ var(@struct_decode({@u8, @u16l}, "\x05\xE9\x03")) decoded;
|
|
|
|
|
+ assert(@val_equal(decoded, {"5", "1001"}));
|
|
|
|
|
+
|
|
|
exit("0");
|
|
exit("0");
|
|
|
}
|
|
}
|