--- 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));