Skip to content

Commit ee759ad

Browse files
committed
gufi_vt dir_match_uid/gid tests
1 parent 65c4457 commit ee759ad

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
@@ -615,6 +615,116 @@ prefix/empty_directory
615615
prefix/leaf_directory
616616
prefix/unusual#? directory ,
617617

618+
# dir_match_uid/gid without values
619+
$ (
620+
echo ".load gufi_vt"
621+
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;"
622+
) | sqlite3
623+
Each line is one argv[i]:
624+
gufi_query \
625+
--print-tlv \
626+
-x \
627+
--threads \
628+
1 \
629+
--dir-match-uid \
630+
--dir-match-gid \
631+
-E \
632+
SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries; \
633+
prefix
634+
0|prefix/.hidden
635+
0|prefix/1KB
636+
0|prefix/1MB
637+
0|prefix/file_symlink
638+
0|prefix/old_file
639+
0|prefix/repeat_name
640+
1|prefix/directory/executable
641+
1|prefix/directory/readonly
642+
1|prefix/directory/writable
643+
1|prefix/leaf_directory/leaf_file1
644+
1|prefix/leaf_directory/leaf_file2
645+
1|prefix/unusual#? directory ,/unusual, name?#
646+
2|prefix/directory/subdirectory/directory_symlink
647+
2|prefix/directory/subdirectory/repeat_name
648+
649+
# dir_match_uid/gid without values + remote
650+
$ (
651+
echo ".load gufi_vt"
652+
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;"
653+
) | sqlite3
654+
Each line is one argv[i]:
655+
ssh \
656+
remote \
657+
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
658+
0|prefix/.hidden
659+
0|prefix/1KB
660+
0|prefix/1MB
661+
0|prefix/file_symlink
662+
0|prefix/old_file
663+
0|prefix/repeat_name
664+
1|prefix/directory/executable
665+
1|prefix/directory/readonly
666+
1|prefix/directory/writable
667+
1|prefix/leaf_directory/leaf_file1
668+
1|prefix/leaf_directory/leaf_file2
669+
1|prefix/unusual#? directory ,/unusual, name?#
670+
2|prefix/directory/subdirectory/directory_symlink
671+
2|prefix/directory/subdirectory/repeat_name
672+
673+
# dir_match_uid/gid with values
674+
$ (
675+
echo ".load gufi_vt"
676+
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;"
677+
) | sqlite3
678+
Each line is one argv[i]:
679+
gufi_query \
680+
--print-tlv \
681+
-x \
682+
--threads \
683+
1 \
684+
--dir-match-uid=euid \
685+
--dir-match-gid=egid \
686+
-E \
687+
SELECT rpath(sname, sroll, name) AS fullpath, level() AS level FROM vrpentries; \
688+
prefix
689+
0|prefix/.hidden
690+
0|prefix/1KB
691+
0|prefix/1MB
692+
0|prefix/file_symlink
693+
0|prefix/old_file
694+
0|prefix/repeat_name
695+
1|prefix/directory/executable
696+
1|prefix/directory/readonly
697+
1|prefix/directory/writable
698+
1|prefix/leaf_directory/leaf_file1
699+
1|prefix/leaf_directory/leaf_file2
700+
1|prefix/unusual#? directory ,/unusual, name?#
701+
2|prefix/directory/subdirectory/directory_symlink
702+
2|prefix/directory/subdirectory/repeat_name
703+
704+
# dir_match_uid/gid with values + remote
705+
$ (
706+
echo ".load gufi_vt"
707+
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;"
708+
) | sqlite3
709+
Each line is one argv[i]:
710+
ssh \
711+
remote \
712+
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
713+
0|prefix/.hidden
714+
0|prefix/1KB
715+
0|prefix/1MB
716+
0|prefix/file_symlink
717+
0|prefix/old_file
718+
0|prefix/repeat_name
719+
1|prefix/directory/executable
720+
1|prefix/directory/readonly
721+
1|prefix/directory/writable
722+
1|prefix/leaf_directory/leaf_file1
723+
1|prefix/leaf_directory/leaf_file2
724+
1|prefix/unusual#? directory ,/unusual, name?#
725+
2|prefix/directory/subdirectory/directory_symlink
726+
2|prefix/directory/subdirectory/repeat_name
727+
618728
# ######################################
619729
# errors
620730
# Missing indexroot

test/regression/gufi_vt.sh.in

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,34 @@ query=$(
279279
)
280280
query_vt "${query}"
281281

282+
echo "# dir_match_uid/gid without values"
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);"
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 without values + remote"
290+
query=$(
291+
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\");"
292+
echo -n "SELECT level, fullpath FROM gufi ORDER BY level ASC, fullpath ASC;"
293+
)
294+
query_vt "${query}"
295+
296+
echo "# dir_match_uid/gid with values"
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);"
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+
303+
echo "# dir_match_uid/gid with values + remote"
304+
query=$(
305+
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\");"
306+
echo -n "SELECT level, fullpath FROM gufi ORDER BY level ASC, fullpath ASC;"
307+
)
308+
query_vt "${query}" | @SED@ "s%uid=${USER_ID}%uid=euid%g; s%gid=${GROUP_ID}%gid=egid%g;"
309+
282310
echo "# ######################################"
283311
echo "# errors"
284312

0 commit comments

Comments
 (0)