chiark / gitweb /
mtest/t-userv: Test that output conf file is correct
[secnet.git] / mtest / t-userv
index 1e5ea25351d655db696327986c5edd7e31230293..a3843e08f00f08bfa6d94a85185e4e24c4b8f4d7 100755 (executable)
@@ -2,8 +2,56 @@
 
 source mtest/common.tcl
 
-exec env \
-    USERV_USER=Uuser USERV_GROUP=Ginside \
-    ./make-secnet-sites -u \
-    mtest/header.sites $tmp/groupfiles $tmp/out.sites Ginside \
-    < mtest/Ginside.sites
+#----- success test -----
+
+set good [list Uuser Ginside -u \
+          mtest/header.sites $tmp/groupfiles $tmp/out.sites Ginside \
+         < mtest/Ginside.sites]
+
+eval run-mss-userv $good
+
+diff-output e-userv out .sites
+
+#----- argument parser does not look for args beyond header -----
+
+set env(LC_MESSAGES) C
+
+set try [lreplace $good 4 4 --misparse-test]
+
+if {![catch {
+    eval run-mss-userv $try
+} emsg]} {
+    error "should have failed"
+} else {
+    switch -glob $emsg {
+       {*unrecognized arguments: --misparse-test*} {
+           error "misparsed!"
+       }
+       {*No such file or directory: '--misparse-test/TGinside'*} {
+       }
+       * {
+           error "huh ? $emsg"
+       }
+    }
+}
+
+#----- wrong group is rejected -----
+
+set bad [lreplace $good 1 1 Gwrong]
+
+if {![catch {
+    eval run-mss-userv $bad
+} emsg]} {
+    error "should have failed"
+} else {
+    switch -glob $emsg {
+       {*caller not in group Ginside*} { }
+       * { error "huh ? $emsg" }
+    }
+}
+
+#----- resulting sites file is processable -----
+
+eval run-mss $tmp/out.sites >$tmp/out.conf
+
+diff-mss-sites-conf mtest/e-userv.conf $tmp/out.conf