Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

> https://www.btcbonus.tech/transaction/ #297

Open
okorye opened this issue Apr 14, 2024 · 0 comments
Open

> https://www.btcbonus.tech/transaction/ #297

okorye opened this issue Apr 14, 2024 · 0 comments

Comments

@okorye
Copy link

okorye commented Apr 14, 2024

https://www.btcbonus.tech/transaction/

https://github.com/blockchain/lib-exchange-client/tree/master

{"SPDXID":"SPDXRef-DOCUMENT","spdxVersion":"SPDX-2.3","creationInfo":{"created":"202403-05T10:18:00Z","creators":["Tool: GitHub.com-DependencyGraph"]},"name":"com.github.okorye/codespaces-express","dataLicense":"CC01.0","documentDescribes":["SPDXRef-com.github.okorye-codespacesexpress"],"documentNamespace":"https://github.com/okorye/codespaces-
express/dependency_graph/sbom-ce3fd3ce36630cb4","packages":[{"SPDXID":"SPDXRefcom.github.okorye-codespaces-express","name":"com.github.okorye/codespacesexpress","versionInfo":"","downloadLocation":"git+
https://github.com/okorye/codespaces-express
","filesAnalyzed":false,"supplier":"NOASSERTION","externalRefs":[{"referenceCategory": "PACKAGE// Copyright (c) 2013 The LevelDB Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. See the AUTHORS file for names of contributors.

// Test for issue 178: a manual compaction causes deleted data to reappear.
#include
#include
#include

#include "leveldb/db.h"
#include "leveldb/write_batch.h"
#include "util/testharness.h"

namespace {

const int kNumKeys = 1100000;

std::string Key1(int i) {
char buf[100];
snprintf(buf, sizeof(buf), "my_key_%d", i);
return buf;
}

std::string Key2(int i) {
return Key1(i) + "_xxx";
}

class Issue178 { };

TEST(Issue178, Test) {
// Get rid of any state from an old run.
std::string dbpath = leveldb::test::TmpDir() + "/leveldb_cbug_test";
DestroyDB(dbpath, leveldb::Options());

// Open database. Disable compression since it affects the creation
// of layers and the code below is trying to test against a very
// specific scenario.
leveldb::DB* db;
leveldb::Options db_options;
db_options.create_if_missing = true;
db_options.compression = leveldb::kNoCompression;
ASSERT_OK(leveldb::DB::Open(db_options, dbpath, &db));

// create first key range
leveldb::WriteBatch batch;
for (size_t i = 0; i < kNumKeys; i++) {
batch.Put(Key1(i), "value for range 1 key");
}
ASSERT_OK(db->Write(leveldb::WriteOptions(), &batch));

// create second key range
batch.Clear();
for (size_t i = 0; i < kNumKeys; i++) {
batch.Put(Key2(i), "value for range 2 key");
}
ASSERT_OK(db->Write(leveldb::WriteOptions(), &batch));

// delete second key range
batch.Clear();
for (size_t i = 0; i < kNumKeys; i++) {
batch.Delete(Key2(i));
}
ASSERT_OK(db->Write(leveldb::WriteOptions(), &batch));

// compact database
std::string start_key = Key1(0);
std::string end_key = Key1(kNumKeys - 1);
leveldb::Slice least(start_key.data(), start_key.size());
leveldb::Slice greatest(end_key.data(), end_key.size());

// commenting out the line below causes the example to work correctly
db->CompactRange(&least, &greatest);

// count the keys
leveldb::Iterator* iter = db->NewIterator(leveldb::ReadOptions());
size_t num_keys = 0;
for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
num_keys++;
}
delete iter;
ASSERT_EQ(kNumKeys, num_keys) << "Bad number of keys";

// close database
delete db;
DestroyDB(dbpath, leveldb::Options());
}

} // anonymous namespace

int main(int argc, char** argv) {
return leveldb::test::RunAllTests();
}

Originally posted by @okorye in #286 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant