# vim: syn=sh: for bc in 0 1 do for ais in 0 1 do cd $TESTDIR $TESTDIR/rollback || die "rollback failed" editrc GL_WILDREPOS 1 editrc GL_BIG_CONFIG $bc echo "\$GL_ALL_INCLUDES_SPECIAL = $ais;" | addrc # ---------- name "INTERNAL" echo " @leads = u1 u2 @devs = u1 u2 u3 u4 @gbar = bar/CREATOR/..* repo @gbar C = @leads RW+ = @leads RW = @devs " | ugc expect_push_ok "master -> master" runlocal git ls-remote u1:bar/u1/try1 runremote ls -al $TEST_BASE/bar/u1/try1.git/git-daemon-export-ok expect "ls: cannot access $TEST_BASE/bar/u1/try1.git/git-daemon-export-ok: No such file or directory" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 0 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 12 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" notexpect "bar/u1/try1.git" name "add daemon access" echo " R = daemon " | ugc runremote ls -al $TEST_BASE/bar/u1/try1.git/git-daemon-export-ok expect "$USER $USER .* $TEST_BASE/bar/u1/try1.git/git-daemon-export-ok" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 0 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 12 .* projects.list" name "add one more repo" runlocal git ls-remote u1:bar/u1/try2 runremote ls -al $TEST_BASE/bar/u1/try2.git/git-daemon-export-ok expect "$USER $USER .* $TEST_BASE/bar/u1/try2.git/git-daemon-export-ok" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 0 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 12 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" notexpect "bar/u1/try1.git" notexpect "bar/u1/try2.git" name "add descriptions for try1 and try3 and compile" echo " bar/u1/try1 = \"this is bar/u1/try1\" bar/u1/try3 = \"this is bar/u1/try3\" " | ugc runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 16 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 28 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" expect "bar/u1/try1.git" notexpect "bar/u1/try2.git" notexpect "bar/u1/try3.git" runremote cat $TEST_BASE/bar/u1/try1.git/description expect "this is bar/u1/try1" name "add try3 project" runlocal git ls-remote u1:bar/u1/try3 runremote ls -al $TEST_BASE/bar/u1/try3.git/git-daemon-export-ok expect "$USER $USER .* $TEST_BASE/bar/u1/try3.git/git-daemon-export-ok" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 16 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 28 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" expect "bar/u1/try1.git" notexpect "bar/u1/try2.git" notexpect "bar/u1/try3.git" runremote cat $TEST_BASE/bar/u1/try1.git/description expect "this is bar/u1/try1" runremote cat $TEST_BASE/bar/u1/try3.git/description expect "Unnamed repository; edit this file 'description' to name the repository." name "now compile and recheck try3 stuff" echo " " | ugc runremote ls -al $TEST_BASE/bar/u1/try3.git/git-daemon-export-ok expect "$USER $USER .* $TEST_BASE/bar/u1/try3.git/git-daemon-export-ok" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 32 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 44 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" expect "bar/u1/try1.git" notexpect "bar/u1/try2.git" expect "bar/u1/try3.git" runremote cat $TEST_BASE/bar/u1/try1.git/description expect "this is bar/u1/try1" runremote cat $TEST_BASE/bar/u1/try3.git/description expect "this is bar/u1/try3" name "add owner for try2 and compile" echo " bar/u1/try2 \"owner2\" = \"this is bar/u1/try1\" " | ugc runremote cat $TEST_BASE/bar/u1/try2.git/config expect "\[gitweb\]" expect "owner = owner2" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 48 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 60 .* projects.list" runremote cat projects.list expect "bar/u1/try2.git" name "add gitweb access to all" echo " repo @gbar R = gitweb " | ugc expect_push_ok "master -> master" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 48 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 60 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" expect "bar/u1/try1.git" expect "bar/u1/try2.git" expect "bar/u1/try3.git" name "add try4 project" runlocal git ls-remote u1:bar/u1/try4 runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 64 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 76 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" expect "bar/u1/try1.git" expect "bar/u1/try2.git" expect "bar/u1/try3.git" expect "bar/u1/try4.git" runremote cat $TEST_BASE/bar/u1/try4.git/description expect "Unnamed repository; edit this file 'description' to name the repository." name "INTERNAL" done done for bc in 0 1 do for ais in 0 1 do cd $TESTDIR $TESTDIR/rollback || die "rollback failed" editrc GL_WILDREPOS 1 editrc GL_BIG_CONFIG $bc echo "\$GL_ALL_INCLUDES_SPECIAL = $ais;" | addrc echo "\$GITWEB_URI_ESCAPE = 1;" | addrc # ---------- name "INTERNAL" echo " @leads = u1 u2 @devs = u1 u2 u3 u4 @gbar = bar/CREATOR/..* repo @gbar C = @leads RW+ = @leads RW = @devs " | ugc expect_push_ok "master -> master" runlocal git ls-remote u1:bar/u1/try1 runremote ls -al $TEST_BASE/bar/u1/try1.git/git-daemon-export-ok expect "ls: cannot access $TEST_BASE/bar/u1/try1.git/git-daemon-export-ok: No such file or directory" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 0 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 12 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" notexpect "bar/u1/try1.git" name "add daemon access" echo " R = daemon " | ugc runremote ls -al $TEST_BASE/bar/u1/try1.git/git-daemon-export-ok expect "$USER $USER .* $TEST_BASE/bar/u1/try1.git/git-daemon-export-ok" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 0 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 12 .* projects.list" name "add one more repo" runlocal git ls-remote u1:bar/u1/try2 runremote ls -al $TEST_BASE/bar/u1/try2.git/git-daemon-export-ok expect "$USER $USER .* $TEST_BASE/bar/u1/try2.git/git-daemon-export-ok" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 0 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 12 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" notexpect "bar/u1/try1.git" notexpect "bar/u1/try2.git" name "add descriptions for try1 and try3 and compile" echo " bar/u1/try1 = \"this is bar/u1/try1\" bar/u1/try3 = \"this is bar/u1/try3\" " | ugc runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 20 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 32 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" notexpect "bar/u1/try1.git" expect "bar%2Fu1%2Ftry1.git" notexpect "bar/u1/try2.git" notexpect "bar/u1/try3.git" notexpect "bar%2Fu1%2Ftry2.git" notexpect "bar%2Fu1%2Ftry3.git" runremote cat $TEST_BASE/bar/u1/try1.git/description expect "this is bar/u1/try1" name "add try3 project" runlocal git ls-remote u1:bar/u1/try3 runremote ls -al $TEST_BASE/bar/u1/try3.git/git-daemon-export-ok expect "$USER $USER .* $TEST_BASE/bar/u1/try3.git/git-daemon-export-ok" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 20 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 32 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" notexpect "bar/u1/try1.git" expect "bar%2Fu1%2Ftry1.git" notexpect "bar/u1/try2.git" notexpect "bar/u1/try3.git" notexpect "bar%2Fu1%2Ftry2.git" notexpect "bar%2Fu1%2Ftry3.git" runremote cat $TEST_BASE/bar/u1/try1.git/description expect "this is bar/u1/try1" runremote cat $TEST_BASE/bar/u1/try3.git/description expect "Unnamed repository; edit this file 'description' to name the repository." name "now compile and recheck try3 stuff" echo " " | ugc runremote ls -al $TEST_BASE/bar/u1/try3.git/git-daemon-export-ok expect "$USER $USER .* $TEST_BASE/bar/u1/try3.git/git-daemon-export-ok" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 40 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 52 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" notexpect "bar/u1/try1.git" expect "bar%2Fu1%2Ftry1.git" notexpect "bar/u1/try2.git" notexpect "bar%2Fu1%2Ftry2.git" notexpect "bar/u1/try3.git" expect "bar%2Fu1%2Ftry3.git" runremote cat $TEST_BASE/bar/u1/try1.git/description expect "this is bar/u1/try1" runremote cat $TEST_BASE/bar/u1/try3.git/description expect "this is bar/u1/try3" name "add owner for try2 and compile" echo " bar/u1/try2 \"owner2\" = \"this is bar/u1/try1\" " | ugc runremote cat $TEST_BASE/bar/u1/try2.git/config expect "\[gitweb\]" expect "owner = owner2" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 60 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 72 .* projects.list" runremote cat projects.list expect "bar%2Fu1%2Ftry2.git" name "add gitweb access to all" echo " repo @gbar R = gitweb " | ugc expect_push_ok "master -> master" runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 60 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 72 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" expect "bar%2Fu1%2Ftry1.git" expect "bar%2Fu1%2Ftry2.git" expect "bar%2Fu1%2Ftry3.git" name "add try4 project" runlocal git ls-remote u1:bar/u1/try4 runremote ls -al projects.list [ "$ais" = "0" ] && expect "$USER $USER 80 .* projects.list" [ "$ais" = "1" ] && expect "$USER $USER 92 .* projects.list" runremote cat projects.list [ "$ais" = "0" ] && notexpect "testing.git" [ "$ais" = "1" ] && expect "testing.git" expect "bar%2Fu1%2Ftry1.git" expect "bar%2Fu1%2Ftry2.git" expect "bar%2Fu1%2Ftry3.git" expect "bar%2Fu1%2Ftry4.git" runremote cat $TEST_BASE/bar/u1/try4.git/description expect "Unnamed repository; edit this file 'description' to name the repository." name "INTERNAL" done done