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

feat: fix build warnings for all targets #236

Merged
merged 1 commit into from
Sep 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,7 @@ MigrationBackup/
cmake-build/
xcode-build/
cmake-build*/
build_support/

# pip
*.egg-info
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ endif()

project(
casbin
VERSION 1.44.0
VERSION 1.53.2
DESCRIPTION "An authorization library that supports access control models like ACL, RBAC, ABAC in C/C++"
HOMEPAGE_URL https://github.com/casbin/casbin-cpp
LANGUAGES CXX C
Expand Down
Empty file.
131 changes: 0 additions & 131 deletions build_support/run_clang_format.py

This file was deleted.

5 changes: 2 additions & 3 deletions casbin/config/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,8 @@ void Config::ParseBuffer(std::istream* buf) {
else {
std::vector<std::string> option_val = Split(line, "=", 2);
if (option_val.size() != 2) {
char* error = new char;
sprintf(error, "parse the content error : line %d , %s = ? ", line_num, option_val[0].c_str());
throw IllegalArgumentException(std::string(error));
std::string error = "parse the content error : line " + std::to_string(line_num) + " , " + option_val[0] + " = ?";
throw IllegalArgumentException(error);
}
std::string option = Trim(option_val[0]);
std::string value = Trim(option_val[1]);
Expand Down
8 changes: 4 additions & 4 deletions casbin/enforcer_cached.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,14 @@ CachedEnforcer::CachedEnforcer(const CachedEnforcer& ce)
this->enableCache = ce.enableCache;
}

CachedEnforcer::CachedEnforcer(CachedEnforcer&& ce)
CachedEnforcer::CachedEnforcer(CachedEnforcer&& ce) noexcept
: Enforcer(ce) {
this->m = move(ce.m);
this->m = std::move(ce.m);
this->enableCache = ce.enableCache;
}

void CachedEnforcer::EnableCache(const bool& enableCache) {
this->enableCache = enableCache;
void CachedEnforcer::EnableCache(const bool& shouldEnableCache) {
this->enableCache = shouldEnableCache;
}

std::pair<bool, bool> CachedEnforcer::getCachedResult(const std::string& key) {
Expand Down
2 changes: 1 addition & 1 deletion casbin/enforcer_synced.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ void SyncedEnforcer ::SetWatcher(std::shared_ptr<Watcher> w) {

// LoadModel reloads the model from the model CONF file.
void SyncedEnforcer ::LoadModel() {
std::unique_lock<std::shared_mutex>(policyMutex);
std::unique_lock<std::shared_mutex> lock(policyMutex);
Enforcer::LoadModel();
}

Expand Down
5 changes: 1 addition & 4 deletions casbin/management_api.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,7 @@ bool Enforcer ::AddNamedPolicy(const std::string& p_type, const std::vector<std:
return this->addPolicy("p", p_type, str_slice);
}

std::vector<std::string> policy;
for (int i = 0; i < params.size(); i++)
policy.push_back(params[i]);
return this->addPolicy("p", p_type, policy);
return this->addPolicy("p", p_type, params);
}

// AddNamedPolicies adds authorization rules to the current named policy.
Expand Down
4 changes: 2 additions & 2 deletions casbin/persist/adapter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
namespace casbin {

// LoadPolicyLine loads a text line as a policy rule to model.
void LoadPolicyLine(std::string line, const std::shared_ptr<Model>& model) {
if (line == "" || line.find("#") == 0)
void LoadPolicyLine(const std::string& line, const std::shared_ptr<Model>& model) {
if (line.empty() || line.find('#') == 0)
return;

std::vector<std::string> tokens = Split(line, ",", -1);
Expand Down
4 changes: 3 additions & 1 deletion casbin/persist/adapter.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
namespace casbin {

// LoadPolicyLine loads a text line as a policy rule to model.
void LoadPolicyLine(std::string line, const std::shared_ptr<Model>& model);
void LoadPolicyLine(const std::string& line, const std::shared_ptr<Model>& model);

/**
* Adapter is the interface for Casbin adapters.
Expand All @@ -34,6 +34,8 @@ class Adapter {
public:
bool filtered;

virtual ~Adapter() = default;

/**
* LoadPolicy loads all policy rules from the storage.
*
Expand Down
4 changes: 3 additions & 1 deletion cmake/modules/Findbenchmark.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ include(FetchContent)

FetchContent_Declare(
benchmark
URL https://github.com/google/benchmark/archive/refs/tags/v1.5.5.zip
GIT_REPOSITORY https://github.com/google/benchmark.git
GIT_TAG v1.8.3
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
)

set(BENCHMARK_ENABLE_TESTING OFF)
Expand Down
3 changes: 2 additions & 1 deletion cmake/modules/Findgoogletest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.11.0
GIT_TAG v1.14.0
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
)

# For Windows: Prevent overriding the parent project's compiler/linker settings
Expand Down
7 changes: 6 additions & 1 deletion cmake/modules/Findjson.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ include(FetchContent)

set(JSON_Install ON)

FetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.11.2/json.tar.xz)
FetchContent_Declare(
json
GIT_REPOSITORY https://github.com/nlohmann/json.git
GIT_TAG v3.11.2
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
)

FetchContent_MakeAvailable(json)
3 changes: 2 additions & 1 deletion cmake/modules/Findpybind11.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ include(FetchContent)
FetchContent_Declare(
pybind11
GIT_REPOSITORY https://github.com/pybind/pybind11.git
GIT_TAG v2.8.0
GIT_TAG v2.11.1
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
)

FetchContent_MakeAvailable(pybind11)
Expand Down
4 changes: 2 additions & 2 deletions include/casbin/enforcer_cached.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ class CachedEnforcer : public Enforcer {
std::mutex locker;

CachedEnforcer(const CachedEnforcer& ce);
CachedEnforcer(CachedEnforcer&& ce);
CachedEnforcer(CachedEnforcer&& ce) noexcept;

void EnableCache(const bool& enableCache);
void EnableCache(const bool& shouldEnableCache);
std::pair<bool, bool> getCachedResult(const std::string& key);
void setCachedResult(const std::string& key, const bool& res);
void InvalidateCache();
Expand Down
2 changes: 1 addition & 1 deletion include/casbin/model/evaluator.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class ExprtkEvaluator : public IEvaluator {

float GetFloat() override;

std::string GetString();
std::string GetString() override;

void Clean(AssertionMap& section, bool after_enforce = true) override;

Expand Down
4 changes: 3 additions & 1 deletion include/casbin/persist/adapter.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
namespace casbin {

// LoadPolicyLine loads a text line as a policy rule to model.
void LoadPolicyLine(std::string line, const std::shared_ptr<Model>& model);
void LoadPolicyLine(const std::string& line, const std::shared_ptr<Model>& model);

/**
* Adapter is the interface for Casbin adapters.
Expand All @@ -34,6 +34,8 @@ class Adapter {
public:
bool filtered;

virtual ~Adapter() = default;

/**
* LoadPolicy loads all policy rules from the storage.
*
Expand Down
45 changes: 21 additions & 24 deletions tests/benchmarks/model_b.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,33 +58,30 @@ static void BenchmarkRBACModel(benchmark::State& state) {
BENCHMARK(BenchmarkRBACModel);

static void BenchmarkRBACModelSizesSmall(benchmark::State& state) {
// 100, 10, 1000
int num_roles = 100, num_resources = 10, num_users = 1000;
int num_roles = 100, num_resources = 10, num_users = 1000;

casbin::Enforcer e(rbac_model_path, "", false);

for (int i = 0; i < num_roles; ++i) e.AddPolicy({"group-has-a-very-long-name-" + std::to_string(i), "data-has-a-very-long-name-" + std::to_string(i % num_resources), "read"});

for (int i = 0; i < num_users; ++i) {
e.AddGroupingPolicy({"user-has-a-very-long-name-" + std::to_string(i), "group-has-a-very-long-name-" + std::to_string(i % num_roles)});
}

int num_request = 17;
std::vector<casbin::DataList> requests(num_request);

for (int i = 0; i < num_request; ++i) {
int id_user = num_users / num_request * i,
id_role = id_user / num_roles,
id_resource = id_role % num_resources;
if (i&2 == 0)
id_resource = (id_resource + 1) % num_resources;

requests[i] = {"user-has-a-very-long-name-" + std::to_string(id_user), "data-has-a-very-long-name-" + std::to_string(id_resource), "read"};
}

for (auto _ : state)
for (auto& req: requests)
e.Enforce(req);
for (int i = 0; i < num_roles; ++i)
e.AddPolicy({
"group-has-a-very-long-name-" + std::to_string(i),
"data-has-a-very-long-name-" + std::to_string(i % num_resources),
"read"
});

for (int i = 0; i < num_users; ++i)
e.AddGroupingPolicy({
"user-has-a-very-long-name-" + std::to_string(i),
"group-has-a-very-long-name-" + std::to_string(i % num_roles)
});

int itr = 0;
for (auto _ : state)
e.Enforce({
"user-has-a-very-long-name-" + std::to_string(itr % num_users),
"data-has-a-very-long-name-" + std::to_string(itr % num_resources),
"read"
}), ++itr;
}

BENCHMARK(BenchmarkRBACModelSizesSmall);
Expand Down
Loading