mirror of
https://github.com/microsoft/GSL.git
synced 2024-11-03 17:56:43 -05:00
Fix iPhone simulator CI (#981)
* Run iOS simulator CI * Fix link errors - scope function linkage using anonymous namespace * Update noexcept test for consistency
This commit is contained in:
parent
ef0ffefe52
commit
c1cbb41b42
6
.github/workflows/ios.yml
vendored
6
.github/workflows/ios.yml
vendored
@ -25,11 +25,11 @@ jobs:
|
|||||||
-GXcode \
|
-GXcode \
|
||||||
-DCMAKE_SYSTEM_NAME=iOS \
|
-DCMAKE_SYSTEM_NAME=iOS \
|
||||||
"-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64" \
|
"-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64" \
|
||||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=8 \
|
-DCMAKE_OSX_DEPLOYMENT_TARGET=9 \
|
||||||
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
|
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
|
||||||
"-DMACOSX_BUNDLE_GUI_IDENTIFIER=GSL.\$(EXECUTABLE_NAME)" \
|
"-DMACOSX_BUNDLE_GUI_IDENTIFIER=GSL.\$(EXECUTABLE_NAME)" \
|
||||||
-DMACOSX_BUNDLE_BUNDLE_VERSION=3.0.1 \
|
-DMACOSX_BUNDLE_BUNDLE_VERSION=3.1.0 \
|
||||||
-DMACOSX_BUNDLE_SHORT_VERSION_STRING=3.0.1 \
|
-DMACOSX_BUNDLE_SHORT_VERSION_STRING=3.1.0 \
|
||||||
..
|
..
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
|
@ -10,7 +10,7 @@ include(ExternalProject)
|
|||||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
|
|
||||||
if(IOS)
|
if(IOS)
|
||||||
add_compile_definitions(GTEST_HAS_DEATH_TEST=1)
|
add_compile_definitions(GTEST_HAS_DEATH_TEST=1 IOS_PROCESS_DELAY_WORKAROUND=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
pkg_search_module(GTestMain gtest_main)
|
pkg_search_module(GTestMain gtest_main)
|
||||||
@ -164,36 +164,27 @@ target_include_directories(gsl_tests_config SYSTEM INTERFACE
|
|||||||
googletest/googletest/include
|
googletest/googletest/include
|
||||||
)
|
)
|
||||||
|
|
||||||
set_property(TARGET PROPERTY FOLDER "GSL_tests")
|
add_executable(gsl_tests
|
||||||
|
algorithm_tests.cpp
|
||||||
|
assertion_tests.cpp
|
||||||
|
at_tests.cpp
|
||||||
|
byte_tests.cpp
|
||||||
|
notnull_tests.cpp
|
||||||
|
owner_tests.cpp
|
||||||
|
span_compatibility_tests.cpp
|
||||||
|
span_ext_tests.cpp
|
||||||
|
span_tests.cpp
|
||||||
|
strict_notnull_tests.cpp
|
||||||
|
string_span_tests.cpp
|
||||||
|
utils_tests.cpp
|
||||||
|
)
|
||||||
|
|
||||||
function(add_gsl_test name)
|
target_link_libraries(gsl_tests
|
||||||
add_executable(${name} ${name}.cpp)
|
|
||||||
target_link_libraries(${name}
|
|
||||||
Microsoft.GSL::GSL
|
Microsoft.GSL::GSL
|
||||||
gsl_tests_config
|
gsl_tests_config
|
||||||
${GTestMain_LIBRARIES}
|
${GTestMain_LIBRARIES}
|
||||||
)
|
)
|
||||||
add_test(
|
add_test(gsl_tests gsl_tests)
|
||||||
${name}
|
|
||||||
${name}
|
|
||||||
)
|
|
||||||
# group all tests under GSL_tests
|
|
||||||
set_property(TARGET ${name} PROPERTY FOLDER "GSL_tests")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
add_gsl_test(span_tests)
|
|
||||||
add_gsl_test(span_ext_tests)
|
|
||||||
add_gsl_test(span_compatibility_tests)
|
|
||||||
add_gsl_test(string_span_tests)
|
|
||||||
add_gsl_test(at_tests)
|
|
||||||
add_gsl_test(notnull_tests)
|
|
||||||
add_gsl_test(assertion_tests)
|
|
||||||
add_gsl_test(utils_tests)
|
|
||||||
add_gsl_test(owner_tests)
|
|
||||||
add_gsl_test(byte_tests)
|
|
||||||
add_gsl_test(algorithm_tests)
|
|
||||||
add_gsl_test(strict_notnull_tests)
|
|
||||||
|
|
||||||
|
|
||||||
# No exception tests
|
# No exception tests
|
||||||
|
|
||||||
@ -268,19 +259,9 @@ else()
|
|||||||
)
|
)
|
||||||
endif(MSVC)
|
endif(MSVC)
|
||||||
|
|
||||||
function(add_gsl_test_noexcept name)
|
add_executable(gsl_noexcept_tests no_exception_ensure_tests.cpp)
|
||||||
add_executable(${name} ${name}.cpp)
|
target_link_libraries(gsl_noexcept_tests
|
||||||
target_link_libraries(${name}
|
|
||||||
Microsoft.GSL::GSL
|
Microsoft.GSL::GSL
|
||||||
gsl_tests_config_noexcept
|
gsl_tests_config_noexcept
|
||||||
${GTestMain_LIBRARIES}
|
|
||||||
)
|
)
|
||||||
add_test(
|
add_test(gsl_noexcept_tests gsl_noexcept_tests)
|
||||||
${name}
|
|
||||||
${name}
|
|
||||||
)
|
|
||||||
# group all tests under GSL_tests_noexcept
|
|
||||||
set_property(TARGET ${name} PROPERTY FOLDER "GSL_tests_noexcept")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
add_gsl_test_noexcept(no_exception_ensure_tests)
|
|
||||||
|
@ -14,8 +14,11 @@
|
|||||||
//
|
//
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include <chrono>
|
||||||
#include <cstdlib> // for std::exit
|
#include <cstdlib> // for std::exit
|
||||||
#include <gsl/span> // for span
|
#include <gsl/span> // for span
|
||||||
|
#include <iostream>
|
||||||
|
#include <thread>
|
||||||
|
|
||||||
int operator_subscript_no_throw() noexcept
|
int operator_subscript_no_throw() noexcept
|
||||||
{
|
{
|
||||||
@ -42,6 +45,10 @@ void setup_termination_handler() noexcept
|
|||||||
|
|
||||||
int main() noexcept
|
int main() noexcept
|
||||||
{
|
{
|
||||||
|
std::cout << "Running main() from " __FILE__ "\n";
|
||||||
|
#if defined(IOS_PROCESS_DELAY_WORKAROUND)
|
||||||
|
std::this_thread::sleep_for(std::chrono::seconds(1));
|
||||||
|
#endif
|
||||||
setup_termination_handler();
|
setup_termination_handler();
|
||||||
operator_subscript_no_throw();
|
operator_subscript_no_throw();
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -29,7 +29,7 @@ using namespace gsl;
|
|||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
static constexpr char deathstring[] = "Expected Death";
|
constexpr char deathstring[] = "Expected Death";
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
struct MyBase
|
struct MyBase
|
||||||
@ -118,12 +118,15 @@ struct NonCopyableNonMovable
|
|||||||
NonCopyableNonMovable& operator=(NonCopyableNonMovable&&) = delete;
|
NonCopyableNonMovable& operator=(NonCopyableNonMovable&&) = delete;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
GSL_SUPPRESS(f.4) // NO-FORMAT: attribute
|
GSL_SUPPRESS(f.4) // NO-FORMAT: attribute
|
||||||
bool helper(not_null<int*> p) { return *p == 12; }
|
bool helper(not_null<int*> p) { return *p == 12; }
|
||||||
GSL_SUPPRESS(f.4) // NO-FORMAT: attribute
|
GSL_SUPPRESS(f.4) // NO-FORMAT: attribute
|
||||||
bool helper_const(not_null<const int*> p) { return *p == 12; }
|
bool helper_const(not_null<const int*> p) { return *p == 12; }
|
||||||
|
|
||||||
int* return_pointer() { return nullptr; }
|
int* return_pointer() { return nullptr; }
|
||||||
|
} // namespace
|
||||||
|
|
||||||
TEST(notnull_tests, TestNotNullConstructors)
|
TEST(notnull_tests, TestNotNullConstructors)
|
||||||
{
|
{
|
||||||
|
@ -17,13 +17,10 @@
|
|||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
#include <gsl/pointers> // for not_null, operator<, operator<=, operator>
|
#include <gsl/pointers> // for not_null, operator<, operator<=, operator>
|
||||||
|
|
||||||
namespace gsl
|
|
||||||
{
|
|
||||||
struct fail_fast;
|
|
||||||
} // namespace gsl
|
|
||||||
|
|
||||||
using namespace gsl;
|
using namespace gsl;
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
GSL_SUPPRESS(f.4) // NO-FORMAT: attribute
|
GSL_SUPPRESS(f.4) // NO-FORMAT: attribute
|
||||||
bool helper(not_null<int*> p) { return *p == 12; }
|
bool helper(not_null<int*> p) { return *p == 12; }
|
||||||
|
|
||||||
@ -36,8 +33,11 @@ bool strict_helper(strict_not_null<int*> p) { return *p == 12; }
|
|||||||
GSL_SUPPRESS(f.4) // NO-FORMAT: attribute
|
GSL_SUPPRESS(f.4) // NO-FORMAT: attribute
|
||||||
bool strict_helper_const(strict_not_null<const int*> p) { return *p == 12; }
|
bool strict_helper_const(strict_not_null<const int*> p) { return *p == 12; }
|
||||||
|
|
||||||
|
#ifdef CONFIRM_COMPILATION_ERRORS
|
||||||
int* return_pointer() { return nullptr; }
|
int* return_pointer() { return nullptr; }
|
||||||
const int* return_pointer_const() { return nullptr; }
|
const int* return_pointer_const() { return nullptr; }
|
||||||
|
#endif
|
||||||
|
} // namespace
|
||||||
|
|
||||||
TEST(strict_notnull_tests, TestStrictNotNull)
|
TEST(strict_notnull_tests, TestStrictNotNull)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user