diff options
author | Griffin Smith <grfn@gws.fyi> | 2020-08-02T17·28-0400 |
---|---|---|
committer | glittershark <grfn@gws.fyi> | 2020-08-02T20·00+0000 |
commit | cc82d6e3605d428a93cdd7063edc30034816df6f (patch) | |
tree | 050c6f8fe315a132e836822f9b3b293b8e613813 /third_party/nix/src/libstore | |
parent | 7aebba7531c0e29baba1c8c3725ac3597ad859ee (diff) |
test(3p/nix): Add test for derivation parse/serialize r/1548
Add a rapidcheck test covering roundtrip parse and serialize for Nix derivations. This covers a bug we discovered in ef54f5d which broke this roundtrip. Change-Id: I72d140334b5f24f79e82e34f98609c695dbfbf93 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1582 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com>
Diffstat (limited to 'third_party/nix/src/libstore')
-rw-r--r-- | third_party/nix/src/libstore/derivations.cc | 2 | ||||
-rw-r--r-- | third_party/nix/src/libstore/derivations.hh | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/third_party/nix/src/libstore/derivations.cc b/third_party/nix/src/libstore/derivations.cc index 29f929270e9b..8a50f3c85b4d 100644 --- a/third_party/nix/src/libstore/derivations.cc +++ b/third_party/nix/src/libstore/derivations.cc @@ -144,7 +144,7 @@ static StringSet parseStrings(std::istream& str, bool arePaths) { return res; } -static Derivation parseDerivation(const std::string& s) { +Derivation parseDerivation(const std::string& s) { Derivation drv; istringstream_nocopy str(s); expect(str, "Derive(["); diff --git a/third_party/nix/src/libstore/derivations.hh b/third_party/nix/src/libstore/derivations.hh index 21ef71372e05..38877780e0c1 100644 --- a/third_party/nix/src/libstore/derivations.hh +++ b/third_party/nix/src/libstore/derivations.hh @@ -16,10 +16,10 @@ const std::string drvExtension = ".drv"; struct DerivationOutput { Path path; + // TODO(grfn): make these two fields a Hash std::string hashAlgo; /* hash used for expected hash computation */ std::string hash; /* expected hash, may be null */ DerivationOutput() {} - // TODO(grfn): Make explicit DerivationOutput(Path path, std::string hashAlgo, std::string hash) { this->path = path; this->hashAlgo = hashAlgo; @@ -92,6 +92,8 @@ Path writeDerivation(const ref<Store>& store, const Derivation& drv, /* Read a derivation from a file. */ Derivation readDerivation(const Path& drvPath); +Derivation parseDerivation(const std::string& s); + /* Check whether a file name ends with the extension for derivations. */ bool isDerivation(const std::string& fileName); |