diff options
-rw-r--r-- | src/libstore/local-store.cc | 3 | ||||
-rwxr-xr-x | tests/substituter.sh | 31 | ||||
-rwxr-xr-x | tests/substituter2.sh | 32 |
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 |