Fix the substituter tests

This commit is contained in:
Eelco Dolstra 2012-07-26 17:36:07 -04:00
parent e3ce54ccee
commit 50395b71a9
3 changed files with 36 additions and 30 deletions

View file

@ -999,7 +999,8 @@ void LocalStore::querySubstitutablePathInfos(const Path & substituter,
while (true) { while (true) {
Path path = readLine(run.from); Path path = readLine(run.from);
if (path == "") break; 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); paths.erase(path);
SubstitutablePathInfo & info(infos[path]); SubstitutablePathInfo & info(infos[path]);
info.deriver = readLine(run.from); info.deriver = readLine(run.from);

View file

@ -2,22 +2,25 @@
echo substituter args: $* >&2 echo substituter args: $* >&2
if test $1 = "--query"; then if test $1 = "--query"; then
while read cmd; do while read cmd args; do
echo FOO $cmd >&2 echo "CMD = $cmd, ARGS = $args" >&2
if test "$cmd" = "have"; then if test "$cmd" = "have"; then
read path for path in $args; do
if grep -q "$path" $TEST_ROOT/sub-paths; then read path
echo 1 if grep -q "$path" $TEST_ROOT/sub-paths; then
else echo $path
echo 0 fi
fi done
echo
elif test "$cmd" = "info"; then elif test "$cmd" = "info"; then
read path for path in $args; do
echo 1 echo $path
echo "" # deriver echo "" # deriver
echo 0 # nr of refs echo 0 # nr of refs
echo $((1 * 1024 * 1024)) # download size echo $((1 * 1024 * 1024)) # download size
echo $((2 * 1024 * 1024)) # nar size echo $((2 * 1024 * 1024)) # nar size
done
echo
else else
echo "bad command $cmd" echo "bad command $cmd"
exit 1 exit 1

View file

@ -2,21 +2,23 @@
echo substituter2 args: $* >&2 echo substituter2 args: $* >&2
if test $1 = "--query"; then if test $1 = "--query"; then
while read cmd; do while read cmd args; do
if test "$cmd" = "have"; then if test "$cmd" = have; then
read path for path in $args; do
if grep -q "$path" $TEST_ROOT/sub-paths; then if grep -q "$path" $TEST_ROOT/sub-paths; then
echo 1 echo $path
else fi
echo 0 done
fi echo
elif test "$cmd" = "info"; then elif test "$cmd" = info; then
read path for path in $args; do
echo 1 echo $path
echo "" # deriver echo "" # deriver
echo 0 # nr of refs echo 0 # nr of refs
echo 0 # download size echo 0 # download size
echo 0 # nar size echo 0 # nar size
done
echo
else else
echo "bad command $cmd" echo "bad command $cmd"
exit 1 exit 1