Skip to contentSkip to conversation

Nul delimiter redux

PATCH New Jack Miller 2 participants 4 messages Jun 24, 2014 – Jul 4, 2014 2 messages not in the archive

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Nul delimiter redux

I missent the last patches (TIL telling send-email 'n' will still send the remaining patches =P). Half way through composing, I realized that I was probably missing untracked .dtbs thanks to .gitignore.

Anyway, so the first patch uses *.test.dtb suffix, or *test_tree1.dtb suffixes to delete instead of *.dtb so that an included .dtb won't be eliminated. It would've been easier to just to suffix the one file I wanted to include, but I tried to take a hint from the test.dts. The only hack is that the other dtbs generated by "make tests" are explicitly included in the cleanup list.

This is pretty invasive for a test of a five character patch, but it should make it easier if binary tests are added later.

Other patch is the same as the previous ones, just merged and with the test.dts name change.

- Jack

--
To unsubscribe from this list: send the line "unsubscribe devicetree-compiler" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

A message that is not in the archive (sent off-list or not yet received): 1403639439-1032-1-git-send-email-jack-jZyo8ZIaZD9AfugRpC6u6w@public.gmane.org

#2 lore raw

PATCH 1/2 Selective .dtb deletion on make clean

Any .dtb generated by the tests is now suffixed with .test.dtb. The .dtbs create by make tests are now explicitly named in the Makefile cleanup list.

tl;dr make it possible to include a prebuilt .dtb in the tests directory without make clean getting it.

---
 tests/Makefile.tests |  2 +-
 tests/run_tests.sh   | 26 +++++++++++++-------------
 2 files changed, 14 insertions(+), 14 deletions(-)
tests/Makefile.tests +1 -1
index 9adedec..05b1aa1 100644
@@ -41,7 +41,7 @@ TESTS_TARGETS = $(TESTS) $(TESTS_TREES)
 TESTS_DEPFILES = $(TESTS:%=%.d) \
 	$(addprefix $(TESTS_PREFIX),testutils.d trees.d dumptrees.d)
 
-TESTS_CLEANFILES_L =  *.output vglog.* vgcore.* *.dtb *.test.dts *.dtsv1 tmp.*
+TESTS_CLEANFILES_L =  *.output vglog.* vgcore.* *test_tree1.dtb bad_node_format.dtb bad_node_char.dtb bad_prop_char.dtb *.test.dtb *.test.dts *.dtsv1 tmp.*
 TESTS_CLEANFILES_L += dumptrees
 TESTS_CLEANFILES = $(TESTS) $(TESTS_CLEANFILES_L:%=$(TESTS_PREFIX)%)
 
tests/run_tests.sh +13 -13
index f94d361..68da4b5 100755
@@ -263,8 +263,8 @@ libfdt_tests () {
 	tree1_tests_rw noppy.$basetree
     done
 
-    run_dtc_test -I dts -O dtb -o subnode_iterate.dtb subnode_iterate.dts
-    run_test subnode_iterate subnode_iterate.dtb
+    run_dtc_test -I dts -O dtb -o subnode_iterate.test.dtb subnode_iterate.dts
+    run_test subnode_iterate subnode_iterate.test.dtb
 
     # Tests for behaviour on various sorts of corrupted trees
     run_test truncated_property
@@ -308,8 +308,8 @@ dtc_tests () {
 
     run_test phandle_format dtc_references.test.dtb both
     for f in legacy epapr both; do
-	run_dtc_test -I dts -O dtb -H $f -o dtc_references.test.$f.dtb references.dts
-	run_test phandle_format dtc_references.test.$f.dtb $f
+	run_dtc_test -I dts -O dtb -H $f -o dtc_references.$f.test.dtb references.dts
+	run_test phandle_format dtc_references.$f.test.dtb $f
     done
 
     run_dtc_test -I dts -O dtb -o multilabel.test.dtb multilabel.dts
@@ -322,9 +322,9 @@ dtc_tests () {
     run_test dtbs_equal_ordered dtc_comments.test.dtb dtc_comments-cmp.test.dtb
 
     # Check aliases support in fdt_path_offset
-    run_dtc_test -I dts -O dtb -o aliases.dtb aliases.dts
-    run_test get_alias aliases.dtb
-    run_test path_offset_aliases aliases.dtb
+    run_dtc_test -I dts -O dtb -o aliases.test.dtb aliases.dts
+    run_test get_alias aliases.test.dtb
+    run_test path_offset_aliases aliases.test.dtb
 
     # Check /include/ directive
     run_dtc_test -I dts -O dtb -o includes.test.dtb include0.dts
@@ -470,14 +470,14 @@ dtc_tests () {
     run_wrap_test cmp dependencies.test.d dependencies.cmp
 
     # Search paths
-    run_wrap_error_test $DTC -I dts -O dtb -o search_paths.dtb search_paths.dts
-    run_dtc_test -i search_dir -I dts -O dtb -o search_paths.dtb \
+    run_wrap_error_test $DTC -I dts -O dtb -o search_paths.test.dtb search_paths.dts
+    run_dtc_test -i search_dir -I dts -O dtb -o search_paths.test.dtb \
 	search_paths.dts
     run_wrap_error_test $DTC -i search_dir_b -I dts -O dtb \
-	-o search_paths_b.dtb search_paths_b.dts
+	-o search_paths_b.test.dtb search_paths_b.dts
     run_dtc_test -i search_dir_b -i search_dir -I dts -O dtb \
-	-o search_paths_b.dtb search_paths_b.dts
-    run_dtc_test -I dts -O dtb -o search_paths_subdir.dtb \
+	-o search_paths_b.test.dtb search_paths_b.dts
+    run_dtc_test -I dts -O dtb -o search_paths_subdir.test.dtb \
 	search_dir_b/search_paths_subdir.dts
 }
 
@@ -618,7 +618,7 @@ fdtdump_tests () {
     return
 
     local dts=fdtdump.dts
-    local dtb=fdtdump.dts.dtb
+    local dtb=fdtdump.dts.test.dtb
     local out=fdtdump.dts.out
     run_dtc_test -O dtb $dts -o ${dtb}
     $FDTDUMP ${dtb} | grep -v "//" >${out}
Signature · 6 lines
2.0.0

--
To unsubscribe from this list: send the line "unsubscribe devicetree-compiler" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

A message that is not in the archive (sent off-list or not yet received): 1403639439-1032-2-git-send-email-jack-jZyo8ZIaZD9AfugRpC6u6w@public.gmane.org

#4 lore raw

Re: [PATCH 1/2] Selective .dtb deletion on make clean

Quoted 6 lines · Jack Miller

Any .dtb generated by the tests is now suffixed with .test.dtb. The .dtbs create by make tests are now explicitly named in the Makefile cleanup list.

tl;dr make it possible to include a prebuilt .dtb in the tests directory without make clean getting it.

Hrm, yeah, this is a bit mucky. I think I'm seeing why I haven't put prebuilt .dtbs into the tree before now.

Hmm. Sorry, I know I'm changing my mind inconveniently here, but can we redo this without the prebuilt dtb - build it from a dts using the normal string escapes, or a bytestring representation.

Signature · 4 lines
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson
#5 lore raw

PATCH 2/2 Properly handle nul delimited string lists

In reply to a message not in the archive

reserved-names="res1\0res2\0res3";

Where \0 is a true embedded nul in the DTS source, should properly turn into a string list. To achieve this, use the len given by the lexer instead of strlen.

Without this patch dtc will mangle the output and possible hang on realloc.

---
 data.c                    |   2 +-
 tests/nul_string_list.dtb | Bin 0 -> 127 bytes
 tests/nul_string_list.dts | Bin 0 -> 66 bytes
 tests/run_tests.sh        |   3 +++
 4 files changed, 4 insertions(+), 1 deletion(-)
 create mode 100644 tests/nul_string_list.dtb
 create mode 100644 tests/nul_string_list.dts
data.c +1 -1
index 4c50b12..8cae237 100644
@@ -74,7 +74,7 @@ struct data data_copy_escape_string(const char *s, int len)
 	struct data d;
 	char *q;
 
-	d = data_grow_for(empty_data, strlen(s)+1);
+	d = data_grow_for(empty_data, len + 1);
 
 	q = d.val;
 	while (i < len) {
tests/nul_string_list.dtb new file binary +0 -0
new file mode 100644
index 0000000000000000000000000000000000000000..ea2bc3915d8129c849d2cc7b247bc9d1a201256c
GIT binary patch
tests/nul_string_list.dts new file binary +0 -0
new file mode 100644
index 0000000000000000000000000000000000000000..845a14425fd36db3fac2934d1412dbb2cd8fb3a9
GIT binary patch
tests/run_tests.sh +3 -0
index 68da4b5..44ef118 100755
@@ -321,6 +321,9 @@ dtc_tests () {
     run_dtc_test -I dts -O dtb -o dtc_comments-cmp.test.dtb comments-cmp.dts
     run_test dtbs_equal_ordered dtc_comments.test.dtb dtc_comments-cmp.test.dtb
 
+    run_dtc_test -I dts -O dtb -o dtc_nul_string_list.test.dtb nul_string_list.dts
+    run_test dtbs_equal_ordered dtc_nul_string_list.test.dtb nul_string_list.dtb
+
     # Check aliases support in fdt_path_offset
     run_dtc_test -I dts -O dtb -o aliases.test.dtb aliases.dts
     run_test get_alias aliases.test.dtb
Signature · 6 lines
2.0.0

--
To unsubscribe from this list: send the line "unsubscribe devicetree-compiler" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html