Often atexit is implemented using __cxa_atexit. I have not implemented __cxa_atexit here because it potentially requires more discussion. It is unique for llvm-libc (I think) that it is an exported symbol that wouldn’t be defined in any spec file because it doesn’t have a header. Implementing it will be trivial given what is here already, but I figured it would be more contentious so it can be implemented later. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D119512
21 lines
726 B
C++
21 lines
726 B
C++
//===-- Unittests for _Exit -----------------------------------------------===//
|
|
//
|
|
// 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "include/stdlib.h"
|
|
#include "src/stdlib/_Exit.h"
|
|
#include "src/stdlib/exit.h"
|
|
#include "utils/UnitTest/Test.h"
|
|
|
|
TEST(LlvmLibcStdlib, _Exit) {
|
|
EXPECT_EXITS([] { __llvm_libc::_Exit(1); }, 1);
|
|
EXPECT_EXITS([] { __llvm_libc::_Exit(65); }, 65);
|
|
|
|
EXPECT_EXITS([] { __llvm_libc::exit(1); }, 1);
|
|
EXPECT_EXITS([] { __llvm_libc::exit(65); }, 65);
|
|
}
|