Skip to content

Commit 7102bf6

Browse files
committed
gufi_vt dir_match_uid/gid tests
1 parent 041aa89 commit 7102bf6

File tree

3 files changed

+140
-2
lines changed

3 files changed

+140
-2
lines changed

src/gufi_vt.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -723,8 +723,8 @@ gufi_vt_xConnect(VRPENTRIES, VRP, 0, 0, 1, 1)
723723
* a = <0|1|2> (see gufi_query)
724724
* min_level = <non-negative integer>
725725
* max_level = <non-negative integer>
726-
* dir_match_uid = <uid>
727-
* dir_match_gid = <gid>
726+
* dir_match_uid = <uid> (if just want euid, pass in no value i.e. dir_match_uid=)
727+
* dir_match_gid = <gid> (if just want egid, pass in no value i.e. dir_match_gid=)
728728
* setup_res_col_type = '<SQL>' (set up single temporary table to make columns available for getting result column types)
729729
* I = '<SQL>'
730730
* T = '<SQL>'

test/regression/gufi_vt.expected

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,116 @@ prefix/empty_directory
595595
prefix/leaf_directory
596596
prefix/unusual#? directory ,
597597

598+
# dir_match_uid/gid without values
599+
$ (
600+
echo ".load gufi_vt"
601+
echo "CREATE VIRTUAL TABLE gufi USING gufi_vt("prefix", dir_match_uid=, dir_match_gid=, E="SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries;", verbose=1);SELECT level, fullpath FROM gufi ORDER BY level ASC, fullpath ASC;"
602+
) | sqlite3
603+
Each line is one argv[i]:
604+
gufi_query \
605+
--print-tlv \
606+
-x \
607+
--threads \
608+
1 \
609+
--dir-match-uid \
610+
--dir-match-gid \
611+
-E \
612+
SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries; \
613+
prefix
614+
0|prefix/.hidden
615+
0|prefix/1KB
616+
0|prefix/1MB
617+
0|prefix/file_symlink
618+
0|prefix/old_file
619+
0|prefix/repeat_name
620+
1|prefix/directory/executable
621+
1|prefix/directory/readonly
622+
1|prefix/directory/writable
623+
1|prefix/leaf_directory/leaf_file1
624+
1|prefix/leaf_directory/leaf_file2
625+
1|prefix/unusual#? directory ,/unusual, name?#
626+
2|prefix/directory/subdirectory/directory_symlink
627+
2|prefix/directory/subdirectory/repeat_name
628+
629+
# dir_match_uid/gid without values + remote
630+
$ (
631+
echo ".load gufi_vt"
632+
echo "CREATE VIRTUAL TABLE gufi USING gufi_vt("prefix", dir_match_uid=, dir_match_gid=, E="SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries;", verbose=1, remote_cmd="ssh", remote_arg="remote");SELECT level, fullpath FROM gufi ORDER BY level ASC, fullpath ASC;"
633+
) | sqlite3
634+
Each line is one argv[i]:
635+
ssh \
636+
remote \
637+
gufi_query --print-tlv -x --threads 1 --dir-match-uid --dir-match-gid -E "SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries;" prefix
638+
0|prefix/.hidden
639+
0|prefix/1KB
640+
0|prefix/1MB
641+
0|prefix/file_symlink
642+
0|prefix/old_file
643+
0|prefix/repeat_name
644+
1|prefix/directory/executable
645+
1|prefix/directory/readonly
646+
1|prefix/directory/writable
647+
1|prefix/leaf_directory/leaf_file1
648+
1|prefix/leaf_directory/leaf_file2
649+
1|prefix/unusual#? directory ,/unusual, name?#
650+
2|prefix/directory/subdirectory/directory_symlink
651+
2|prefix/directory/subdirectory/repeat_name
652+
653+
# dir_match_uid/gid with values
654+
$ (
655+
echo ".load gufi_vt"
656+
echo "CREATE VIRTUAL TABLE gufi USING gufi_vt("prefix", dir_match_uid=euid, dir_match_gid=egid, E="SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries;", verbose=1);SELECT level, fullpath FROM gufi ORDER BY level ASC, fullpath ASC;"
657+
) | sqlite3
658+
Each line is one argv[i]:
659+
gufi_query \
660+
--print-tlv \
661+
-x \
662+
--threads \
663+
1 \
664+
--dir-match-uid=euid \
665+
--dir-match-gid=egid \
666+
-E \
667+
SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries; \
668+
prefix
669+
0|prefix/.hidden
670+
0|prefix/1KB
671+
0|prefix/1MB
672+
0|prefix/file_symlink
673+
0|prefix/old_file
674+
0|prefix/repeat_name
675+
1|prefix/directory/executable
676+
1|prefix/directory/readonly
677+
1|prefix/directory/writable
678+
1|prefix/leaf_directory/leaf_file1
679+
1|prefix/leaf_directory/leaf_file2
680+
1|prefix/unusual#? directory ,/unusual, name?#
681+
2|prefix/directory/subdirectory/directory_symlink
682+
2|prefix/directory/subdirectory/repeat_name
683+
684+
# dir_match_uid/gid with values + remote
685+
$ (
686+
echo ".load gufi_vt"
687+
echo "CREATE VIRTUAL TABLE gufi USING gufi_vt("prefix", dir_match_uid=euid, dir_match_gid=egid, E="SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries;", verbose=1, remote_cmd="ssh", remote_arg="remote");SELECT level, fullpath FROM gufi ORDER BY level ASC, fullpath ASC;"
688+
) | sqlite3
689+
Each line is one argv[i]:
690+
ssh \
691+
remote \
692+
gufi_query --print-tlv -x --threads 1 --dir-match-uid=euid --dir-match-gid=egid -E "SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries;" prefix
693+
0|prefix/.hidden
694+
0|prefix/1KB
695+
0|prefix/1MB
696+
0|prefix/file_symlink
697+
0|prefix/old_file
698+
0|prefix/repeat_name
699+
1|prefix/directory/executable
700+
1|prefix/directory/readonly
701+
1|prefix/directory/writable
702+
1|prefix/leaf_directory/leaf_file1
703+
1|prefix/leaf_directory/leaf_file2
704+
1|prefix/unusual#? directory ,/unusual, name?#
705+
2|prefix/directory/subdirectory/directory_symlink
706+
2|prefix/directory/subdirectory/repeat_name
707+
598708
# ######################################
599709
# errors
600710
# Missing indexroot

test/regression/gufi_vt.sh.in

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,34 @@ query=$(
272272
)
273273
query_vt "${query}"
274274

275+
echo "# dir_match_uid/gid without values"
276+
query=$(
277+
echo -n "CREATE VIRTUAL TABLE gufi USING gufi_vt(\"${INDEXROOT}\", dir_match_uid=, dir_match_gid=, E=\"SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries;\", verbose=1);"
278+
echo -n "SELECT level, fullpath FROM gufi ORDER BY level ASC, fullpath ASC;"
279+
)
280+
query_vt "${query}"
281+
282+
echo "# dir_match_uid/gid without values + remote"
283+
query=$(
284+
echo -n "CREATE VIRTUAL TABLE gufi USING gufi_vt(\"${INDEXROOT}\", dir_match_uid=, dir_match_gid=, E=\"SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries;\", verbose=1, remote_cmd=\"${SSH_FAKE}\", remote_arg=\"remote\");"
285+
echo -n "SELECT level, fullpath FROM gufi ORDER BY level ASC, fullpath ASC;"
286+
)
287+
query_vt "${query}"
288+
289+
echo "# dir_match_uid/gid with values"
290+
query=$(
291+
echo -n "CREATE VIRTUAL TABLE gufi USING gufi_vt(\"${INDEXROOT}\", dir_match_uid=${USER_ID}, dir_match_gid=${GROUP_ID}, E=\"SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries;\", verbose=1);"
292+
echo -n "SELECT level, fullpath FROM gufi ORDER BY level ASC, fullpath ASC;"
293+
)
294+
query_vt "${query}" | @SED@ "s%uid=${USER_ID}%uid=euid%g; s%gid=${GROUP_ID}%gid=egid%g;"
295+
296+
echo "# dir_match_uid/gid with values + remote"
297+
query=$(
298+
echo -n "CREATE VIRTUAL TABLE gufi USING gufi_vt(\"${INDEXROOT}\", dir_match_uid=${USER_ID}, dir_match_gid=${GROUP_ID}, E=\"SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries;\", verbose=1, remote_cmd=\"${SSH_FAKE}\", remote_arg=\"remote\");"
299+
echo -n "SELECT level, fullpath FROM gufi ORDER BY level ASC, fullpath ASC;"
300+
)
301+
query_vt "${query}" | @SED@ "s%uid=${USER_ID}%uid=euid%g; s%gid=${GROUP_ID}%gid=egid%g;"
302+
275303
echo "# ######################################"
276304
echo "# errors"
277305

0 commit comments

Comments
 (0)