Commit 177d271c authored by Pantelis Antoniou's avatar Pantelis Antoniou Committed by Grant Likely

of/overlay: Add overlay unittests

Add unittests for OF overlays.

It tests overlay device addition/removal and whether
the apply revert sequence is correct.

Changes since V1:
* Added local fixups entries.
Signed-off-by: default avatarPantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: default avatarGrant Likely <grant.likely@linaro.org>
parent 7518b589
* OF selftest platform device
** selftest
Required properties:
- compatible: must be "selftest"
All other properties are optional.
Example:
selftest {
compatible = "selftest";
status = "okay";
};
...@@ -13,6 +13,7 @@ node-remove { ...@@ -13,6 +13,7 @@ node-remove {
#include "tests-interrupts.dtsi" #include "tests-interrupts.dtsi"
#include "tests-match.dtsi" #include "tests-match.dtsi"
#include "tests-platform.dtsi" #include "tests-platform.dtsi"
#include "tests-overlay.dtsi"
/* /*
* phandle fixup data - generated by dtc patches that aren't upstream. * phandle fixup data - generated by dtc patches that aren't upstream.
...@@ -59,5 +60,20 @@ testcase-device1 { ...@@ -59,5 +60,20 @@ testcase-device1 {
testcase-device2 { testcase-device2 {
interrupt-parent = <0x00000000>; interrupt-parent = <0x00000000>;
}; };
overlay2 {
fragment@0 {
target = <0x00000000>;
};
};
overlay3 {
fragment@0 {
target = <0x00000000>;
};
};
overlay4 {
fragment@0 {
target = <0x00000000>;
};
};
}; };
}; }; }; };
/ {
testcase-data {
overlay-node {
/* test bus */
selftestbus: test-bus {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
selftest100: test-selftest100 {
compatible = "selftest";
status = "okay";
reg = <100>;
};
selftest101: test-selftest101 {
compatible = "selftest";
status = "disabled";
reg = <101>;
};
selftest0: test-selftest0 {
compatible = "selftest";
status = "disabled";
reg = <0>;
};
selftest1: test-selftest1 {
compatible = "selftest";
status = "okay";
reg = <1>;
};
selftest2: test-selftest2 {
compatible = "selftest";
status = "disabled";
reg = <2>;
};
selftest3: test-selftest3 {
compatible = "selftest";
status = "okay";
reg = <3>;
};
selftest5: test-selftest5 {
compatible = "selftest";
status = "disabled";
reg = <5>;
};
selftest6: test-selftest6 {
compatible = "selftest";
status = "disabled";
reg = <6>;
};
selftest7: test-selftest7 {
compatible = "selftest";
status = "disabled";
reg = <7>;
};
selftest8: test-selftest8 {
compatible = "selftest";
status = "disabled";
reg = <8>;
};
};
};
/* test enable using absolute target path */
overlay0 {
fragment@0 {
target-path = "/testcase-data/overlay-node/test-bus/test-selftest0";
__overlay__ {
status = "okay";
};
};
};
/* test disable using absolute target path */
overlay1 {
fragment@0 {
target-path = "/testcase-data/overlay-node/test-bus/test-selftest1";
__overlay__ {
status = "disabled";
};
};
};
/* test enable using label */
overlay2 {
fragment@0 {
target = <&selftest2>;
__overlay__ {
status = "okay";
};
};
};
/* test disable using label */
overlay3 {
fragment@0 {
target = <&selftest3>;
__overlay__ {
status = "disabled";
};
};
};
/* test insertion of a full node */
overlay4 {
fragment@0 {
target = <&selftestbus>;
__overlay__ {
/* suppress DTC warning */
#address-cells = <1>;
#size-cells = <0>;
test-selftest4 {
compatible = "selftest";
status = "okay";
reg = <4>;
};
};
};
};
/* test overlay apply revert */
overlay5 {
fragment@0 {
target-path = "/testcase-data/overlay-node/test-bus/test-selftest5";
__overlay__ {
status = "okay";
};
};
};
/* test overlays application and removal in sequence */
overlay6 {
fragment@0 {
target-path = "/testcase-data/overlay-node/test-bus/test-selftest6";
__overlay__ {
status = "okay";
};
};
};
overlay7 {
fragment@0 {
target-path = "/testcase-data/overlay-node/test-bus/test-selftest7";
__overlay__ {
status = "okay";
};
};
};
/* test overlays application and removal in bad sequence */
overlay8 {
fragment@0 {
target-path = "/testcase-data/overlay-node/test-bus/test-selftest8";
__overlay__ {
status = "okay";
};
};
};
overlay9 {
fragment@0 {
target-path = "/testcase-data/overlay-node/test-bus/test-selftest8";
__overlay__ {
property-foo = "bar";
};
};
};
};
};
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment