Merge branch 'write-failure-fixes' of git://github.com/lheckemann/nix

This commit is contained in:
Shea Levy
2018-03-02 10:59:59 -05:00
5 changed files with 16 additions and 1 deletions

View File

@@ -67,7 +67,8 @@ void FdSink::write(const unsigned char * data, size_t len)
try {
writeFull(fd, data, len);
} catch (SysError & e) {
_good = true;
_good = false;
throw;
}
}

View File

@@ -631,6 +631,7 @@ static void opDump(Strings opFlags, Strings opArgs)
FdSink sink(STDOUT_FILENO);
string path = *opArgs.begin();
dumpPath(path, sink);
sink.flush();
}
@@ -656,6 +657,7 @@ static void opExport(Strings opFlags, Strings opArgs)
FdSink sink(STDOUT_FILENO);
store->exportPaths(opArgs, sink);
sink.flush();
}

View File

@@ -29,6 +29,7 @@ struct CmdDumpPath : StorePathCommand
{
FdSink sink(STDOUT_FILENO);
store->narFromPath(storePath, sink);
sink.flush();
}
};

View File

@@ -8,6 +8,11 @@ nix-store --export $outPath > $TEST_ROOT/exp
nix-store --export $(nix-store -qR $outPath) > $TEST_ROOT/exp_all
if nix-store --export $outPath >/dev/full ; then
echo "exporting to a bad file descriptor should fail"
exit 1
fi
clearStore

View File

@@ -36,3 +36,9 @@ diff -u baz.cat-nar $storePath/foo/baz
# 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'
# Test failure to dump.
if nix-store --dump $storePath >/dev/full ; then
echo "dumping to /dev/full should fail"
exit -1
fi