llvm-project/libcxxabi/test/test_exception_storage.pass.cpp
Shoaib Meenai 42d5567683 [libc++abi] Overhaul test_exception_storage.pass.cpp
I'm making a change in this area (https://reviews.llvm.org/D138461), so update the test:
* Add proper synchronization instead of a sleep.
* Avoid some unnecessary size_t casts.
* Spawn the number of hardware threads instead of 10.
* Check that `__cxa_get_globals` and `__cxa_get_globals_fast` return
  the same values.
* Split the test in with-threads and without-threads tests to simplify
  the code.

Differential Revision: https://reviews.llvm.org/D138460

Co-authored-by: Louis Dionne <ldionne.2@gmail.com>
2023-09-11 14:14:41 -04:00

25 lines
962 B
C++

//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03
#include "assert_macros.h"
#include "concat_macros.h"
#include "../src/cxa_exception.h"
int main(int, char**) {
void* globals = __cxxabiv1::__cxa_get_globals();
TEST_REQUIRE(globals != nullptr, TEST_WRITE_CONCATENATED("Got null result from __cxa_get_globals"));
void* fast_globals = __cxxabiv1::__cxa_get_globals_fast();
TEST_REQUIRE(globals == fast_globals, TEST_WRITE_CONCATENATED("__cxa_get_globals returned ", globals,
" but __cxa_get_globals_fast returned ", fast_globals));
return 0;
}