about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libstore/nar-accessor.cc2
-rw-r--r--tests/nar-access.sh4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/libstore/nar-accessor.cc b/src/libstore/nar-accessor.cc
index e5042208e5..839a7991c8 100644
--- a/src/libstore/nar-accessor.cc
+++ b/src/libstore/nar-accessor.cc
@@ -214,7 +214,7 @@ void listNar(JSONPlaceholder & res, ref<FSAccessor> accessor,
         obj.attr("target", accessor->readLink(path));
         break;
     default:
-        abort();
+        throw Error("path '%s' does not exist in NAR", path);
     }
 }
 
diff --git a/tests/nar-access.sh b/tests/nar-access.sh
index 63f97f36cb..e29e4689b6 100644
--- a/tests/nar-access.sh
+++ b/tests/nar-access.sh
@@ -32,3 +32,7 @@ diff -u baz.cat-nar $storePath/foo/baz
 [[ $(nix ls-store --json $storePath) = '{"type":"directory","entries":{"foo":{},"foo-x":{},"qux":{},"zyx":{}}}' ]]
 [[ $(nix ls-store --json -R $storePath/foo) = '{"type":"directory","entries":{"bar":{"type":"regular","size":0},"baz":{"type":"regular","size":0},"data":{"type":"regular","size":58}}}' ]]
 [[ $(nix ls-store --json -R $storePath/foo/bar) = '{"type":"regular","size":0}' ]]
+
+# Test missing files.
+nix ls-store --json -R $storePath/xyzzy 2>&1 | grep 'does not exist in NAR'
+nix ls-store $storePath/xyzzy 2>&1 | grep 'does not exist'