mirror of
https://github.com/ETLCPP/etl.git
synced 2026-06-26 20:38:45 +08:00
Attempt to fix clang CI error
This commit is contained in:
parent
ceeee5686d
commit
34491c4ccb
126
.github/workflows/clang.yml
vendored
126
.github/workflows/clang.yml
vendored
@ -1,94 +1,18 @@
|
|||||||
name: clang
|
name: clang
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ master ]
|
branches: [ hotfix/attempt-to-fix-clang-ci-error ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-clang-9-linux-stl:
|
|
||||||
name: Clang-9 Linux - STL
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os: [ubuntu-20.04]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y "clang-9" "lldb-9" "lld-9" "clang-format-9"
|
|
||||||
export CC=clang-9
|
|
||||||
export CXX=clang++-9
|
|
||||||
export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0
|
|
||||||
git fetch --tags
|
|
||||||
cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./
|
|
||||||
clang --version
|
|
||||||
make
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
run: ./test/etl_tests
|
|
||||||
|
|
||||||
build-clang-9-linux-no-stl:
|
|
||||||
name: Clang-9 Linux - No STL
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os: [ubuntu-20.04]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y "clang-9" "lldb-9" "lld-9" "clang-format-9"
|
|
||||||
export CC=clang-9
|
|
||||||
export CXX=clang++-9
|
|
||||||
export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0
|
|
||||||
git fetch --tags
|
|
||||||
cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./
|
|
||||||
gcc --version
|
|
||||||
cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./
|
|
||||||
clang --version
|
|
||||||
make
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
run: ./test/etl_tests
|
|
||||||
|
|
||||||
build-clang-9-linux-stl-force-cpp03:
|
|
||||||
name: Clang-9 Linux - STL - Force C++03
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os: [ubuntu-20.04]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y "clang-9" "lldb-9" "lld-9" "clang-format-9"
|
|
||||||
export CC=clang-9
|
|
||||||
export CXX=clang++-9
|
|
||||||
export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0
|
|
||||||
git fetch --tags
|
|
||||||
cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON ./
|
|
||||||
clang --version
|
|
||||||
make
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
run: ./test/etl_tests
|
|
||||||
|
|
||||||
build-clang-10-osx-stl:
|
build-clang-10-osx-stl:
|
||||||
name: Clang-10 OSX - STL
|
name: Clang-10 OSX - STL
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-10.15]
|
os: [macos-11]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
@ -106,49 +30,3 @@ jobs:
|
|||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: ./test/etl_tests
|
run: ./test/etl_tests
|
||||||
|
|
||||||
build-clang-10-osx-no-stl:
|
|
||||||
name: Clang-10 OSX - No STL
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os: [macos-10.15]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
export CC=clang
|
|
||||||
export CXX=clang++
|
|
||||||
export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0
|
|
||||||
git fetch --tags
|
|
||||||
cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF ./
|
|
||||||
clang --version
|
|
||||||
make
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
run: ./test/etl_tests
|
|
||||||
|
|
||||||
build-clang-10-osx-stl-force-cpp03:
|
|
||||||
name: Clang-10 OSX - STL - Force C++03
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os: [macos-10.15]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
export CC=clang
|
|
||||||
export CXX=clang++
|
|
||||||
export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0
|
|
||||||
git fetch --tags
|
|
||||||
cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON ./
|
|
||||||
clang --version
|
|
||||||
make
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
run: ./test/etl_tests
|
|
||||||
|
|
||||||
|
|||||||
@ -31,6 +31,7 @@ SOFTWARE.
|
|||||||
#ifndef ETL_PLATFORM_INCLUDED
|
#ifndef ETL_PLATFORM_INCLUDED
|
||||||
#define ETL_PLATFORM_INCLUDED
|
#define ETL_PLATFORM_INCLUDED
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
|
|||||||
@ -158,13 +158,13 @@ namespace etl
|
|||||||
value_type key_value_pair;
|
value_type key_value_pair;
|
||||||
};
|
};
|
||||||
|
|
||||||
friend static bool operator ==(const node_t& lhs, const node_t& rhs)
|
friend bool operator ==(const node_t& lhs, const node_t& rhs)
|
||||||
{
|
{
|
||||||
return (lhs.key_value_pair.first == rhs.key_value_pair.first) &&
|
return (lhs.key_value_pair.first == rhs.key_value_pair.first) &&
|
||||||
(lhs.key_value_pair.second == rhs.key_value_pair.second);
|
(lhs.key_value_pair.second == rhs.key_value_pair.second);
|
||||||
}
|
}
|
||||||
|
|
||||||
friend static bool operator !=(const node_t& lhs, const node_t& rhs)
|
friend bool operator !=(const node_t& lhs, const node_t& rhs)
|
||||||
{
|
{
|
||||||
return !(lhs == rhs);
|
return !(lhs == rhs);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,12 +44,16 @@ namespace
|
|||||||
//*************************************************************************
|
//*************************************************************************
|
||||||
TEST(test_murmur3_32_constructor)
|
TEST(test_murmur3_32_constructor)
|
||||||
{
|
{
|
||||||
std::string data("123456789");
|
std::aligned_storage_t<sizeof(char), std::alignment_of_v<uint32_t>> storage[10];
|
||||||
|
std::string data("123456789");
|
||||||
|
|
||||||
uint32_t hash = etl::murmur3<uint32_t>(data.begin(), data.end());
|
char* begin = (char*)&storage[0];
|
||||||
|
strcpy(begin, data.c_str());
|
||||||
|
|
||||||
|
uint32_t hash = etl::murmur3<uint32_t>(begin, begin + data.size());
|
||||||
|
|
||||||
uint32_t compare;
|
uint32_t compare;
|
||||||
MurmurHash3_x86_32(data.c_str(), data.size(), 0, &compare);
|
MurmurHash3_x86_32(begin, data.size(), 0, &compare);
|
||||||
|
|
||||||
CHECK_EQUAL(compare, hash);
|
CHECK_EQUAL(compare, hash);
|
||||||
}
|
}
|
||||||
@ -57,8 +61,12 @@ namespace
|
|||||||
//*************************************************************************
|
//*************************************************************************
|
||||||
TEST(test_murmur3_32_add_values)
|
TEST(test_murmur3_32_add_values)
|
||||||
{
|
{
|
||||||
|
std::aligned_storage_t<sizeof(char), std::alignment_of_v<uint32_t>> storage[10];
|
||||||
std::string data("123456789");
|
std::string data("123456789");
|
||||||
|
|
||||||
|
char* begin = (char*)&storage[0];
|
||||||
|
strcpy(begin, data.c_str());
|
||||||
|
|
||||||
etl::murmur3<uint32_t> murmur3_32_calculator;
|
etl::murmur3<uint32_t> murmur3_32_calculator;
|
||||||
|
|
||||||
for (size_t i = 0UL; i < data.size(); ++i)
|
for (size_t i = 0UL; i < data.size(); ++i)
|
||||||
@ -69,7 +77,7 @@ namespace
|
|||||||
uint32_t hash = murmur3_32_calculator;
|
uint32_t hash = murmur3_32_calculator;
|
||||||
|
|
||||||
uint32_t compare;
|
uint32_t compare;
|
||||||
MurmurHash3_x86_32(data.c_str(), data.size(), 0, &compare);
|
MurmurHash3_x86_32(begin, data.size(), 0, &compare);
|
||||||
|
|
||||||
CHECK_EQUAL(compare, hash);
|
CHECK_EQUAL(compare, hash);
|
||||||
}
|
}
|
||||||
@ -77,8 +85,12 @@ namespace
|
|||||||
//*************************************************************************
|
//*************************************************************************
|
||||||
TEST(test_murmur3_32_add_range)
|
TEST(test_murmur3_32_add_range)
|
||||||
{
|
{
|
||||||
|
std::aligned_storage_t<sizeof(char), std::alignment_of_v<uint32_t>> storage[10];
|
||||||
std::string data("123456789");
|
std::string data("123456789");
|
||||||
|
|
||||||
|
char* begin = (char*)&storage[0];
|
||||||
|
strcpy(begin, data.c_str());
|
||||||
|
|
||||||
etl::murmur3<uint32_t> murmur3_32_calculator;
|
etl::murmur3<uint32_t> murmur3_32_calculator;
|
||||||
|
|
||||||
murmur3_32_calculator.add(data.begin(), data.end());
|
murmur3_32_calculator.add(data.begin(), data.end());
|
||||||
@ -86,7 +98,7 @@ namespace
|
|||||||
uint32_t hash = murmur3_32_calculator.value();
|
uint32_t hash = murmur3_32_calculator.value();
|
||||||
|
|
||||||
uint32_t compare;
|
uint32_t compare;
|
||||||
MurmurHash3_x86_32(data.c_str(), data.size(), 0, &compare);
|
MurmurHash3_x86_32(begin, data.size(), 0, &compare);
|
||||||
|
|
||||||
CHECK_EQUAL(compare, hash);
|
CHECK_EQUAL(compare, hash);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -419,7 +419,8 @@ namespace
|
|||||||
|
|
||||||
bool isEqual = std::equal(data.begin(),
|
bool isEqual = std::equal(data.begin(),
|
||||||
data.end(),
|
data.end(),
|
||||||
other_data.begin());
|
other_data.begin(),
|
||||||
|
std::equal_to<DataNDC::value_type>());
|
||||||
|
|
||||||
CHECK(isEqual);
|
CHECK(isEqual);
|
||||||
}
|
}
|
||||||
@ -435,7 +436,7 @@ namespace
|
|||||||
|
|
||||||
idata2 = idata1;
|
idata2 = idata1;
|
||||||
|
|
||||||
bool isEqual = std::equal(data1.begin(),
|
bool isEqual = etl::equal(data1.begin(),
|
||||||
data1.end(),
|
data1.end(),
|
||||||
data2.begin());
|
data2.begin());
|
||||||
|
|
||||||
@ -452,7 +453,7 @@ namespace
|
|||||||
other_data = other_data;
|
other_data = other_data;
|
||||||
#include "etl/private/diagnostic_pop.h"
|
#include "etl/private/diagnostic_pop.h"
|
||||||
|
|
||||||
bool isEqual = std::equal(data.begin(),
|
bool isEqual = etl::equal(data.begin(),
|
||||||
data.end(),
|
data.end(),
|
||||||
other_data.begin());
|
other_data.begin());
|
||||||
|
|
||||||
|
|||||||
@ -37,6 +37,7 @@ SOFTWARE.
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <numeric>
|
#include <numeric>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
|
||||||
@ -338,7 +339,7 @@ namespace
|
|||||||
|
|
||||||
other_data = data;
|
other_data = data;
|
||||||
|
|
||||||
bool isEqual = std::equal(data.begin(),
|
bool isEqual = etl::equal(data.begin(),
|
||||||
data.end(),
|
data.end(),
|
||||||
other_data.begin());
|
other_data.begin());
|
||||||
|
|
||||||
@ -356,7 +357,7 @@ namespace
|
|||||||
|
|
||||||
idata2 = idata1;
|
idata2 = idata1;
|
||||||
|
|
||||||
bool isEqual = std::equal(data1.begin(),
|
bool isEqual = etl::equal(data1.begin(),
|
||||||
data1.end(),
|
data1.end(),
|
||||||
data2.begin());
|
data2.begin());
|
||||||
|
|
||||||
@ -374,7 +375,7 @@ namespace
|
|||||||
#include "etl/private/diagnostic_pop.h"
|
#include "etl/private/diagnostic_pop.h"
|
||||||
|
|
||||||
|
|
||||||
bool isEqual = std::equal(data.begin(),
|
bool isEqual = etl::equal(data.begin(),
|
||||||
data.end(),
|
data.end(),
|
||||||
other_data.begin());
|
other_data.begin());
|
||||||
|
|
||||||
|
|||||||
@ -283,7 +283,7 @@ namespace
|
|||||||
|
|
||||||
other_data = data;
|
other_data = data;
|
||||||
|
|
||||||
bool isEqual = std::equal(data.begin(),
|
bool isEqual = etl::equal(data.begin(),
|
||||||
data.end(),
|
data.end(),
|
||||||
other_data.begin());
|
other_data.begin());
|
||||||
|
|
||||||
@ -301,7 +301,7 @@ namespace
|
|||||||
|
|
||||||
idata2 = idata1;
|
idata2 = idata1;
|
||||||
|
|
||||||
bool isEqual = std::equal(data1.begin(),
|
bool isEqual = etl::equal(data1.begin(),
|
||||||
data1.end(),
|
data1.end(),
|
||||||
data2.begin());
|
data2.begin());
|
||||||
|
|
||||||
@ -318,7 +318,7 @@ namespace
|
|||||||
other_data = other_data;
|
other_data = other_data;
|
||||||
#include "etl/private/diagnostic_pop.h"
|
#include "etl/private/diagnostic_pop.h"
|
||||||
|
|
||||||
bool isEqual = std::equal(data.begin(),
|
bool isEqual = etl::equal(data.begin(),
|
||||||
data.end(),
|
data.end(),
|
||||||
other_data.begin());
|
other_data.begin());
|
||||||
|
|
||||||
|
|||||||
@ -267,7 +267,7 @@ namespace
|
|||||||
|
|
||||||
other_data = data;
|
other_data = data;
|
||||||
|
|
||||||
bool isEqual = std::equal(data.begin(),
|
bool isEqual = etl::equal(data.begin(),
|
||||||
data.end(),
|
data.end(),
|
||||||
other_data.begin());
|
other_data.begin());
|
||||||
|
|
||||||
@ -285,7 +285,7 @@ namespace
|
|||||||
|
|
||||||
idata2 = idata1;
|
idata2 = idata1;
|
||||||
|
|
||||||
bool isEqual = std::equal(data1.begin(),
|
bool isEqual = etl::equal(data1.begin(),
|
||||||
data1.end(),
|
data1.end(),
|
||||||
data2.begin());
|
data2.begin());
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ namespace
|
|||||||
other_data = other_data;
|
other_data = other_data;
|
||||||
#include "etl/private/diagnostic_pop.h"
|
#include "etl/private/diagnostic_pop.h"
|
||||||
|
|
||||||
bool isEqual = std::equal(data.begin(),
|
bool isEqual = etl::equal(data.begin(),
|
||||||
data.end(),
|
data.end(),
|
||||||
other_data.begin());
|
other_data.begin());
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user