1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-09 03:56:01 +01:00

Merge pull request #13714 from xokdvium/move-ref-scan-sink

libutil: Move references.{hh,cc} to libstore, remove unused scanForReferences
This commit is contained in:
Sergei Zimmerman 2025-08-08 11:09:39 +03:00 committed by GitHub
commit cac8ec3b05
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 48 additions and 69 deletions

View file

@ -1,4 +1,4 @@
#include "nix/util/references.hh" #include "nix/store/references.hh"
#include "nix/store/path.hh" #include "nix/store/path.hh"
#include "nix/util/base-nix-32.hh" #include "nix/util/base-nix-32.hh"

View file

@ -1,9 +1,46 @@
#include "nix/util/references.hh" #include "nix/store/references.hh"
#include <gtest/gtest.h> #include <gtest/gtest.h>
namespace nix { namespace nix {
struct RewriteParams
{
std::string originalString, finalString;
StringMap rewrites;
friend std::ostream & operator<<(std::ostream & os, const RewriteParams & bar)
{
StringSet strRewrites;
for (auto & [from, to] : bar.rewrites)
strRewrites.insert(from + "->" + to);
return os << "OriginalString: " << bar.originalString << std::endl
<< "Rewrites: " << dropEmptyInitThenConcatStringsSep(",", strRewrites) << std::endl
<< "Expected result: " << bar.finalString;
}
};
class RewriteTest : public ::testing::TestWithParam<RewriteParams>
{};
TEST_P(RewriteTest, IdentityRewriteIsIdentity)
{
RewriteParams param = GetParam();
StringSink rewritten;
auto rewriter = RewritingSink(param.rewrites, rewritten);
rewriter(param.originalString);
rewriter.flush();
ASSERT_EQ(rewritten.s, param.finalString);
}
INSTANTIATE_TEST_CASE_P(
references,
RewriteTest,
::testing::Values(
RewriteParams{"foooo", "baroo", {{"foo", "bar"}, {"bar", "baz"}}},
RewriteParams{"foooo", "bazoo", {{"fou", "bar"}, {"foo", "baz"}}},
RewriteParams{"foooo", "foooo", {}}));
TEST(references, scan) TEST(references, scan)
{ {
std::string hash1 = "dc04vv14dak1c1r48qa0m23vr9jy8sm0"; std::string hash1 = "dc04vv14dak1c1r48qa0m23vr9jy8sm0";

View file

@ -62,6 +62,7 @@ headers = [ config_pub_h ] + files(
'posix-fs-canonicalise.hh', 'posix-fs-canonicalise.hh',
'profiles.hh', 'profiles.hh',
'realisation.hh', 'realisation.hh',
'references.hh',
'remote-fs-accessor.hh', 'remote-fs-accessor.hh',
'remote-store-connection.hh', 'remote-store-connection.hh',
'remote-store.hh', 'remote-store.hh',

View file

@ -1,13 +1,11 @@
#pragma once #pragma once
///@file ///@file
#include "nix/util/references.hh" #include "nix/store/references.hh"
#include "nix/store/path.hh" #include "nix/store/path.hh"
namespace nix { namespace nix {
std::pair<StorePathSet, HashResult> scanForReferences(const Path & path, const StorePathSet & refs);
StorePathSet scanForReferences(Sink & toTee, const Path & path, const StorePathSet & refs); StorePathSet scanForReferences(Sink & toTee, const Path & path, const StorePathSet & refs);
class PathRefScanSink : public RefScanSink class PathRefScanSink : public RefScanSink

View file

@ -7,7 +7,7 @@
#include "nix/store/derivations.hh" #include "nix/store/derivations.hh"
#include "nix/store/realisation.hh" #include "nix/store/realisation.hh"
#include "nix/store/nar-info.hh" #include "nix/store/nar-info.hh"
#include "nix/util/references.hh" #include "nix/store/references.hh"
#include "nix/util/callback.hh" #include "nix/util/callback.hh"
#include "nix/util/topo-sort.hh" #include "nix/util/topo-sort.hh"
#include "nix/util/finally.hh" #include "nix/util/finally.hh"

View file

@ -1,5 +1,5 @@
#include "nix/store/make-content-addressed.hh" #include "nix/store/make-content-addressed.hh"
#include "nix/util/references.hh" #include "nix/store/references.hh"
namespace nix { namespace nix {

View file

@ -316,6 +316,7 @@ sources = files(
'posix-fs-canonicalise.cc', 'posix-fs-canonicalise.cc',
'profiles.cc', 'profiles.cc',
'realisation.cc', 'realisation.cc',
'references.cc',
'remote-fs-accessor.cc', 'remote-fs-accessor.cc',
'remote-store.cc', 'remote-store.cc',
'restricted-store.cc', 'restricted-store.cc',

View file

@ -43,14 +43,6 @@ StorePathSet PathRefScanSink::getResultPaths()
return found; return found;
} }
std::pair<StorePathSet, HashResult> scanForReferences(const std::string & path, const StorePathSet & refs)
{
HashSink hashSink{HashAlgorithm::SHA256};
auto found = scanForReferences(hashSink, path, refs);
auto hash = hashSink.finish();
return std::pair<StorePathSet, HashResult>(found, hash);
}
StorePathSet scanForReferences(Sink & toTee, const Path & path, const StorePathSet & refs) StorePathSet scanForReferences(Sink & toTee, const Path & path, const StorePathSet & refs)
{ {
PathRefScanSink refsSink = PathRefScanSink::fromPaths(refs); PathRefScanSink refsSink = PathRefScanSink::fromPaths(refs);

View file

@ -1,6 +1,6 @@
#include "nix/util/references.hh" #include "nix/store/references.hh"
#include "nix/store/path.hh"
#include "nix/util/hash.hh" #include "nix/util/hash.hh"
#include "nix/util/archive.hh"
#include "nix/util/base-nix-32.hh" #include "nix/util/base-nix-32.hh"
#include <map> #include <map>
@ -10,7 +10,7 @@
namespace nix { namespace nix {
static size_t refLength = 32; /* characters */ static constexpr auto refLength = StorePath::HashLen;
static void search(std::string_view s, StringSet & hashes, StringSet & seen) static void search(std::string_view s, StringSet & hashes, StringSet & seen)
{ {

View file

@ -9,7 +9,6 @@
#include "nix/util/util.hh" #include "nix/util/util.hh"
#include "nix/store/nar-info-disk-cache.hh" #include "nix/store/nar-info-disk-cache.hh"
#include "nix/util/thread-pool.hh" #include "nix/util/thread-pool.hh"
#include "nix/util/references.hh"
#include "nix/util/archive.hh" #include "nix/util/archive.hh"
#include "nix/util/callback.hh" #include "nix/util/callback.hh"
#include "nix/util/git.hh" #include "nix/util/git.hh"
@ -18,7 +17,6 @@
// `addMultipleToStore`. // `addMultipleToStore`.
#include "nix/store/worker-protocol.hh" #include "nix/store/worker-protocol.hh"
#include "nix/util/signals.hh" #include "nix/util/signals.hh"
#include "nix/util/users.hh"
#include <filesystem> #include <filesystem>
#include <nlohmann/json.hpp> #include <nlohmann/json.hpp>

View file

@ -66,7 +66,6 @@ sources = files(
'pool.cc', 'pool.cc',
'position.cc', 'position.cc',
'processes.cc', 'processes.cc',
'references.cc',
'sort.cc', 'sort.cc',
'spawn.cc', 'spawn.cc',
'strings.cc', 'strings.cc',

View file

@ -1,45 +0,0 @@
#include "nix/util/references.hh"
#include <gtest/gtest.h>
namespace nix {
using std::string;
struct RewriteParams
{
string originalString, finalString;
StringMap rewrites;
friend std::ostream & operator<<(std::ostream & os, const RewriteParams & bar)
{
StringSet strRewrites;
for (auto & [from, to] : bar.rewrites)
strRewrites.insert(from + "->" + to);
return os << "OriginalString: " << bar.originalString << std::endl
<< "Rewrites: " << dropEmptyInitThenConcatStringsSep(",", strRewrites) << std::endl
<< "Expected result: " << bar.finalString;
}
};
class RewriteTest : public ::testing::TestWithParam<RewriteParams>
{};
TEST_P(RewriteTest, IdentityRewriteIsIdentity)
{
RewriteParams param = GetParam();
StringSink rewritten;
auto rewriter = RewritingSink(param.rewrites, rewritten);
rewriter(param.originalString);
rewriter.flush();
ASSERT_EQ(rewritten.s, param.finalString);
}
INSTANTIATE_TEST_CASE_P(
references,
RewriteTest,
::testing::Values(
RewriteParams{"foooo", "baroo", {{"foo", "bar"}, {"bar", "baz"}}},
RewriteParams{"foooo", "bazoo", {{"fou", "bar"}, {"foo", "baz"}}},
RewriteParams{"foooo", "foooo", {}}));
} // namespace nix

View file

@ -55,7 +55,6 @@ headers = files(
'posix-source-accessor.hh', 'posix-source-accessor.hh',
'processes.hh', 'processes.hh',
'ref.hh', 'ref.hh',
'references.hh',
'regex-combinators.hh', 'regex-combinators.hh',
'repair-flag.hh', 'repair-flag.hh',
'serialise.hh', 'serialise.hh',

View file

@ -145,7 +145,6 @@ sources = [ config_priv_h ] + files(
'pos-table.cc', 'pos-table.cc',
'position.cc', 'position.cc',
'posix-source-accessor.cc', 'posix-source-accessor.cc',
'references.cc',
'serialise.cc', 'serialise.cc',
'signature/local-keys.cc', 'signature/local-keys.cc',
'signature/signer.cc', 'signature/signer.cc',

View file

@ -3,7 +3,7 @@
#include "nix/store/content-address.hh" #include "nix/store/content-address.hh"
#include "nix/cmd/legacy.hh" #include "nix/cmd/legacy.hh"
#include "nix/main/shared.hh" #include "nix/main/shared.hh"
#include "nix/util/references.hh" #include "nix/store/references.hh"
#include "nix/util/archive.hh" #include "nix/util/archive.hh"
#include "nix/util/git.hh" #include "nix/util/git.hh"
#include "nix/util/posix-source-accessor.hh" #include "nix/util/posix-source-accessor.hh"