about summary refs log tree commit diff
path: root/third_party/nix/src
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2020-11-21T14·26+0100
committerVincent Ambo <mail@tazj.in>2020-11-21T14·26+0100
commitcc27324d0226953943f408ce3c69ad7d648e005e (patch)
tree8bb0cc684739a625462dec6ef24008e2d6d20807 /third_party/nix/src
parentcce0ad1bcd66922790cebf08f173c985fc619225 (diff)
chore(tvix): Use StatusOr API available in Abseil's version r/1888
The Abseil version of `StatusOr` does not come with the status macros
or the `Consume*` family of functions.

This change modifies the existing code to use the common denominator
of the API that is available between Abseil's own implementation of
`StatusOr` and the one from Tensorflow that we are currently using.

Change-Id: I5c37f68636a1fd54d153f95d7303ab8644abb774
Diffstat (limited to 'third_party/nix/src')
-rw-r--r--third_party/nix/src/nix-daemon/nix-daemon-proto.cc2
-rw-r--r--third_party/nix/src/tests/language-tests.cc7
-rw-r--r--third_party/nix/src/tests/store-util.hh7
-rw-r--r--third_party/nix/src/tests/store_tests.cc5
4 files changed, 13 insertions, 8 deletions
diff --git a/third_party/nix/src/nix-daemon/nix-daemon-proto.cc b/third_party/nix/src/nix-daemon/nix-daemon-proto.cc
index 79ff9cadc2d1..b6a5fe358a96 100644
--- a/third_party/nix/src/nix-daemon/nix-daemon-proto.cc
+++ b/third_party/nix/src/nix-daemon/nix-daemon-proto.cc
@@ -245,7 +245,7 @@ class WorkerServiceImpl final : public WorkerService::Service {
                           std::string(nar_hash.status().message()));
           }
 
-          info.narHash = nar_hash.ConsumeValueOrDie();
+          info.narHash = *nar_hash;
           for (const auto& ref : path_info.references()) {
             info.references.insert(ref);
           }
diff --git a/third_party/nix/src/tests/language-tests.cc b/third_party/nix/src/tests/language-tests.cc
index 189e1ede5c37..46e8c6ea80f7 100644
--- a/third_party/nix/src/tests/language-tests.cc
+++ b/third_party/nix/src/tests/language-tests.cc
@@ -257,9 +257,10 @@ class EvalStoreSuccessTest
 // Test pattern for files that should evaluate successfully but require a real
 // store.
 TEST_P(EvalStoreSuccessTest, Succeeds) {
-  std::unique_ptr<nix::LocalStore> store_ =
-      OpenTemporaryStore().ConsumeValueOrDie();
-  ref<Store> store = ref<Store>(store_.release());
+  absl::StatusOr<std::unique_ptr<nix::LocalStore>> store_ =
+      OpenTemporaryStore();
+  CHECK(store_.ok()) << "failed to open temporary store";
+  ref<Store> store = ref<Store>(store_->release());
   EvalState state({}, store);
   auto path = GetParam();
 
diff --git a/third_party/nix/src/tests/store-util.hh b/third_party/nix/src/tests/store-util.hh
index 170794616b2b..b31bb0edcb8f 100644
--- a/third_party/nix/src/tests/store-util.hh
+++ b/third_party/nix/src/tests/store-util.hh
@@ -58,10 +58,13 @@ class StoreTest : public ::testing::Test {
   }
 
   absl::StatusOr<std::unique_ptr<nix::LocalStore>> OpenTemporaryStore() {
-    ASSIGN_OR_RETURN(std::filesystem::path storePath, OpenTempDir());
+    absl::StatusOr<std::filesystem::path> storePath = OpenTempDir();
+    if (!storePath.ok()) {
+      return storePath.status();
+    }
 
     nix::Store::Params params;
-    params["root"] = storePath;
+    params["root"] = *storePath;
 
     return std::make_unique<nix::LocalStore>(params);
   }
diff --git a/third_party/nix/src/tests/store_tests.cc b/third_party/nix/src/tests/store_tests.cc
index 8110e9c337bc..a6ffb715a90f 100644
--- a/third_party/nix/src/tests/store_tests.cc
+++ b/third_party/nix/src/tests/store_tests.cc
@@ -90,8 +90,9 @@ TEST_F(BinaryCacheStoreTest, BasicErrors) {
 
 // ./tests/add.sh
 TEST_F(StoreTest, AddFileHashes) {
-  auto store_ = OpenTemporaryStore().ConsumeValueOrDie();
-  nix::Store* store = static_cast<nix::Store*>(store_.get());
+  auto store_ = OpenTemporaryStore();
+  CHECK(store_.ok()) << "failed to open temporary store";
+  nix::Store* store = store_->release();
   nix::Path dataPath = NIX_SRC_DIR "/src/tests/lang/data";
   std::string dataName = "data";