This folder contains scripts and test data to test libufdt.

# Test scripts

* run_tests.sh: The main entry to run test cases. Using different
  test cases under testdata/*.
* gen_test.sh: The script to run a single test case.
* common.sh: A common lib containing several useful functions.

# Test data

testdata/${my_test_case}.base_dts
 - Base device tree source.
 - Sample format:
   ```
   /dts-v1/;
   / {
     a: a{};
   };
   ```

testdata/${my_test_case}.add_dts
 - Additional device tree source.
 - Sample format:
   ```
   &a{ name = "a"; };
   ```

testdata/${my_test_case}.add_ov_dts (optional)
 - Additional device tree fragment source.
 - Sample format:
   ```
   /dts-v1/ /plugin/;
   / {
     fragment@0{
        target = <&a>;
        __overlay__ {
          name = "a";
        };
     };
   };
   ```

# Steps to run the test

Suppose you are at the root directory of your Android source.

1. `source build/envsetup.sh`
2. `lunch`
3. `mmma system/libufdt`
4. `system/libufdt/tests/run_tests.sh`
