Get psu inventory path

Invoke GetSubTreePaths on configurable psu inventory base path to get
all the PSU paths.
Add unit test case and meson.build to build the unit test case.

In test/meson.build, manually adding dynamic_linker related options for
OE SDK environment to link_args, so that the built test binary could be
executed in OE SDK environment. Otherwise, the ld will not find the
correct shared libraries in OE SDK.

And you have to execute the test binaries manually in OE SDK, because
meson skips running the tests due to it thinks it's cross compiling.
This is described in README as well.

Tested: Verify the build and unit test run OK in OE SDK
        environment and in OpenBMC CI.
        Verify it gets the PSU inventory paths correctly on Witherspoon.

Signed-off-by: Lei YU <mine260309@gmail.com>
Change-Id: I2e2003c5897d7a623fad7f87d263b71c926fc46d
diff --git a/README b/README
index 14ace83..8f3921a 100644
--- a/README
+++ b/README
@@ -13,3 +13,15 @@
 meson build/ && ninja -C build
 ```
 
+## Unit test
+
+* Run it in OpenBMC CI, refer to [local-ci-build.md][1]
+* Run it in [OE SDK][2], run below commands in a x86-64 SDK env:
+   ```
+   meson -Doe-sdk=enabled -Dtests=enabled build/
+   ninja -C build/ test  # Meson skips running the case due to it thinks it's cross compiling
+   ./build/test/utest  # Manually run the test
+   ```
+
+[1]: https://github.com/openbmc/docs/blob/master/local-ci-build.md
+[2]: https://github.com/openbmc/docs/blob/master/cheatsheet.md#building-the-openbmc-sdk