1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
--- xsettingsd-1.0.2/setting_test.cc.old 2021-01-08 12:00:13.000000000 -0600
+++ xsettingsd-1.0.2/setting_test.cc 2022-06-05 22:19:35.511364966 -0500
@@ -53,14 +53,20 @@
IntegerSetting setting(5);
setting.UpdateSerial(NULL, 3);
ASSERT_TRUE(setting.Write("name", &writer));
- // TODO: Won't work on big-endian systems.
const char expected[] = {
0x0, // type
0x0, // unused
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+ 0x0, 0x4, // name-len
+ 0x6e, 0x61, 0x6d, 0x65, // "name" (multiple of 4, so no padding)
+ 0x0, 0x0, 0x0, 0x3, // serial
+ 0x0, 0x0, 0x0, 0x5, // value
+#else
0x4, 0x0, // name-len
0x6e, 0x61, 0x6d, 0x65, // "name" (multiple of 4, so no padding)
0x3, 0x0, 0x0, 0x0, // serial
0x5, 0x0, 0x0, 0x0, // value
+#endif
};
ASSERT_EQ(sizeof(expected), writer.bytes_written());
EXPECT_PRED_FORMAT3(BytesAreEqual, expected, buffer, sizeof(expected));
@@ -74,15 +80,22 @@
StringSetting setting("testing");
setting.UpdateSerial(NULL, 5);
ASSERT_TRUE(setting.Write("setting", &writer));
- // TODO: Won't work on big-endian systems.
const char expected[] = {
0x1, // type
0x0, // unused
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+ 0x0, 0x7, // name-len
+ 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, // "setting" (name)
+ 0x0, // padding
+ 0x0, 0x0, 0x0, 0x5, // serial
+ 0x0, 0x0, 0x0, 0x7, // value-len
+#else
0x7, 0x0, // name-len
0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, // "setting" (name)
0x0, // padding
0x5, 0x0, 0x0, 0x0, // serial
0x7, 0x0, 0x0, 0x0, // value-len
+#endif
0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, // "testing" (value)
0x0, // padding
};
@@ -98,10 +111,18 @@
ColorSetting setting(32768, 65535, 0, 255);
setting.UpdateSerial(NULL, 2);
ASSERT_TRUE(setting.Write("name", &writer));
- // TODO: Won't work on big-endian systems.
const char expected[] = {
0x2, // type
0x0, // unused
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+ 0x0, 0x4, // name-len
+ 0x6e, 0x61, 0x6d, 0x65, // "name" (multiple of 4, so no padding)
+ 0x0, 0x0, 0x0, 0x2, // serial
+ 0x80, 0x0, // red
+ 0x0, 0x0, // blue (yes, the order is strange)
+ 0xff, 0xff, // green
+ 0x0, 0xff, // alpha
+#else
0x4, 0x0, // name-len
0x6e, 0x61, 0x6d, 0x65, // "name" (multiple of 4, so no padding)
0x2, 0x0, 0x0, 0x0, // serial
@@ -109,6 +130,7 @@
0x0, 0x0, // blue (yes, the order is strange)
0xff, 0xff, // green
0xff, 0x0, // alpha
+#endif
};
ASSERT_EQ(sizeof(expected), writer.bytes_written());
EXPECT_PRED_FORMAT3(BytesAreEqual, expected, buffer, sizeof(expected));
|