The barebox,state binding is quite complex and we have a lot of udev parsing code that can only be exercised by manually running barebox-state on the target. Make development less error prone, by adding tests for the block device bindings. EEPROM and MTD can follow later.
Tests are executed by meson as a runner. Patches to teach autotools to do the same are welcome, although I think we should follow RAUC's steps and eventually deprecate autotools once meson is on par. The obvious wart is that we build with -fvisibility=hidden on autotools, but with meson the same visibility option results in linker errors. I have no idea why yet, but that should only make meson-built libdt-utils a bit slower without functional change. Ahmad Fatoum (5): Add meson as build system state: add option to lock device node meson: add simple integration test libdt: add CONFIG_TEST_LOOPBACK test: add barebox-state loop block device tests .gitignore | 2 + README | 21 + check-news.sh | 82 ++ configure.ac | 11 + meson.build | 163 ++++ meson_options.txt | 25 + src/barebox-state.c | 30 +- src/barebox-state/state.c | 4 + src/barebox-state/state.h | 21 + src/dt/dt.h | 1 - src/libdt.c | 50 +- test/01-fixed-partition-no-gpt.dts | 34 + ...2-fixed-partition-before-gpt-partition.dts | 34 + test/03-fixed-partition-is-gpt-partition.dts | 34 + test/04-gpt-partition-by-partuuid.dts | 31 + test/05-gpt-partition-by-typeuuid.dts | 23 + test/06-fixed-partition-by-diskuuid.dts | 33 + test/07-raw-disk-fail.dts | 18 + test/08-gpt-disk-no-typeuuid-fail.dts | 18 + ...-partition-overlaps-two-gpt-partitions.dts | 34 + ...-overlaps-two-gpt-partitions-partially.dts | 34 + ...-fixed-partition-part-of-gpt-partition.dts | 34 + test/barebox-state.dtsi | 53 ++ test/barebox-state.t | 229 +++++ test/crc32.c | 18 + test/gpt-no-typeuuid.config | 33 + test/gpt.config | 35 + test/meson.build | 36 + test/raw.config | 24 + test/sharness.sh | 857 ++++++++++++++++++ version-gen | 3 + version.h.in | 3 + 32 files changed, 2012 insertions(+), 16 deletions(-) create mode 100755 check-news.sh create mode 100644 meson.build create mode 100644 meson_options.txt create mode 100644 test/01-fixed-partition-no-gpt.dts create mode 100644 test/02-fixed-partition-before-gpt-partition.dts create mode 100644 test/03-fixed-partition-is-gpt-partition.dts create mode 100644 test/04-gpt-partition-by-partuuid.dts create mode 100644 test/05-gpt-partition-by-typeuuid.dts create mode 100644 test/06-fixed-partition-by-diskuuid.dts create mode 100644 test/07-raw-disk-fail.dts create mode 100644 test/08-gpt-disk-no-typeuuid-fail.dts create mode 100644 test/31-fixed-partition-overlaps-two-gpt-partitions.dts create mode 100644 test/32-fixed-partition-overlaps-two-gpt-partitions-partially.dts create mode 100644 test/33-fixed-partition-part-of-gpt-partition.dts create mode 100644 test/barebox-state.dtsi create mode 100755 test/barebox-state.t create mode 100644 test/crc32.c create mode 100644 test/gpt-no-typeuuid.config create mode 100644 test/gpt.config create mode 100644 test/meson.build create mode 100644 test/raw.config create mode 100755 test/sharness.sh create mode 100755 version-gen create mode 100644 version.h.in -- 2.39.2