about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libstore/local-store.cc3
-rwxr-xr-xtests/substituter.sh31
-rwxr-xr-xtests/substituter2.sh32
3 files changed, 36 insertions, 30 deletions
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc
index ebfcc946716a..58ce691ebb07 100644
--- a/src/libstore/local-store.cc
+++ b/src/libstore/local-store.cc
@@ -999,7 +999,8 @@ void LocalStore::querySubstitutablePathInfos(const Path & substituter,
     while (true) {
         Path path = readLine(run.from);
         if (path == "") break;
-        assert(paths.find(path) != paths.end());
+        if (paths.find(path) == paths.end())
+            throw Error(format("got unexpected path `%1%' from substituter") % path);
         paths.erase(path);
         SubstitutablePathInfo & info(infos[path]);
         info.deriver = readLine(run.from);
diff --git a/tests/substituter.sh b/tests/substituter.sh
index 65c4fa1856d0..a6bdacfd66f7 100755
--- a/tests/substituter.sh
+++ b/tests/substituter.sh
@@ -2,22 +2,25 @@
 echo substituter args: $* >&2
 
 if test $1 = "--query"; then
-    while read cmd; do
-        echo FOO $cmd >&2
+    while read cmd args; do
+        echo "CMD = $cmd, ARGS = $args" >&2
         if test "$cmd" = "have"; then
-            read path
-            if grep -q "$path" $TEST_ROOT/sub-paths; then
-                echo 1
-            else
-                echo 0
-            fi
+            for path in $args; do 
+                read path
+                if grep -q "$path" $TEST_ROOT/sub-paths; then
+                    echo $path
+                fi
+            done
+            echo
         elif test "$cmd" = "info"; then
-            read path
-            echo 1
-            echo "" # deriver
-            echo 0 # nr of refs
-            echo $((1 * 1024 * 1024)) # download size
-            echo $((2 * 1024 * 1024)) # nar size
+            for path in $args; do
+                echo $path
+                echo "" # deriver
+                echo 0 # nr of refs
+                echo $((1 * 1024 * 1024)) # download size
+                echo $((2 * 1024 * 1024)) # nar size
+            done
+            echo
         else
             echo "bad command $cmd"
             exit 1
diff --git a/tests/substituter2.sh b/tests/substituter2.sh
index c56a1bc47b5c..34b2c0eafaf8 100755
--- a/tests/substituter2.sh
+++ b/tests/substituter2.sh
@@ -2,21 +2,23 @@
 echo substituter2 args: $* >&2
 
 if test $1 = "--query"; then
-    while read cmd; do
-        if test "$cmd" = "have"; then
-            read path
-            if grep -q "$path" $TEST_ROOT/sub-paths; then
-                echo 1
-            else
-                echo 0
-            fi
-        elif test "$cmd" = "info"; then
-            read path
-            echo 1
-            echo "" # deriver
-            echo 0 # nr of refs
-            echo 0 # download size
-            echo 0 # nar size
+    while read cmd args; do
+        if test "$cmd" = have; then
+            for path in $args; do
+                if grep -q "$path" $TEST_ROOT/sub-paths; then
+                    echo $path
+                fi
+            done
+            echo
+        elif test "$cmd" = info; then
+            for path in $args; do
+                echo $path
+                echo "" # deriver
+                echo 0 # nr of refs
+                echo 0 # download size
+                echo 0 # nar size
+            done
+            echo
         else
             echo "bad command $cmd"
             exit 1