From 3da9017c17c7d2432c4b76345c4d2efbeedd2935 Mon Sep 17 00:00:00 2001 From: Joey Jiaojg Date: Wed, 26 May 2021 19:38:04 +0800 Subject: pkg/compiler: add glob type * all: add new typename dirname The current way to check files under sysfs or proc is: - define a string to represent each file - open the file - pass the fd to write / read / close The issues above are: - Need to know what file present on target device - Need to write openat for each file With dirname added, which will open one file in the directory randomly and then pass the fd to write/read/close. * all: use typename glob to match filename Fixes #481 --- pkg/compiler/testdata/all.txt | 3 +++ pkg/compiler/testdata/errors.txt | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'pkg/compiler/testdata') diff --git a/pkg/compiler/testdata/all.txt b/pkg/compiler/testdata/all.txt index 17b7c838d..b1adf2321 100644 --- a/pkg/compiler/testdata/all.txt +++ b/pkg/compiler/testdata/all.txt @@ -252,6 +252,9 @@ foo_templ9(a ptr[in, templ_base3[int64]]) foo_templ10(a ptr[in, templ_base4[int8]]) foo_templ11(a ptr[in, templ_base5[42, int8]]) +foo_glob0(a ptr[in, glob["/sys/"]]) +foo_glob1(a ptr[in, glob["/sys/**/*"]]) + # Structs. s0 { diff --git a/pkg/compiler/testdata/errors.txt b/pkg/compiler/testdata/errors.txt index d3658d239..670cc0193 100644 --- a/pkg/compiler/testdata/errors.txt +++ b/pkg/compiler/testdata/errors.txt @@ -334,6 +334,11 @@ foo$210(a ptr[in, templ11[0, 1, int8]]) ### template templ11 needs 2 arguments foo$211(a ptr[in, templ9]) ### template templ9 needs 1 arguments instead of 0 foo$212(a ptr[in, templ11[1]]) ### template templ11 needs 2 arguments instead of 1 +foo$glob001(a ptr[in, glob[1]]) ### unexpected int 1, string arg must be a string literal or string flags +foo$glob002(a ptr[in, glob]) ### glob only accepts 1 arg, provided 0 +foo$glob003(a ptr[in, glob["/sys", 5]]) ### glob only accepts 1 arg, provided 2 +foo$glob004(a ptr[in, glob["/sys", 5, 2]]) ### wrong number of arguments for type glob, expect [literal or flags], [size], [opt] + # fmt foo$fmt0(a ptr[in, fmt]) ### wrong number of arguments for type fmt, expect format, value @@ -355,4 +360,4 @@ struct$perfielddir { f4 int32 (in, inout) ### arg/field has multiple direction attributes f5 int32 (out, inout) ### arg/field has multiple direction attributes f6 int32 (in, out, inout) ### arg/field has multiple direction attributes -} \ No newline at end of file +} -- cgit mrf-deployment