feat: extract test code
This commit is contained in:
parent
2799111d21
commit
1c9b7cb3f4
@ -12,7 +12,7 @@ include(ExportCompileCommands)
|
||||
configure_file("${PROJECT_SOURCE_DIR}/include/version.h.in"
|
||||
"${PROJECT_BINARY_DIR}/include/version.h")
|
||||
|
||||
add_executable(hello src/main.cpp)
|
||||
add_executable(hello src/main.cpp src/null.cpp)
|
||||
target_compile_features(hello PUBLIC cxx_std_20)
|
||||
|
||||
target_include_directories(hello PRIVATE "${PROJECT_BINARY_DIR}/include")
|
||||
|
24
src/main.cpp
24
src/main.cpp
@ -1,36 +1,16 @@
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <type_traits>
|
||||
|
||||
#include "version.h"
|
||||
|
||||
void call_test(char *) { std::cout << "call_test(char *) called" << std::endl; }
|
||||
|
||||
void call_test(int) { std::cout << "call_test(int) called" << std::endl; }
|
||||
#include "null.h"
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
std::cout << "Running " << PROJECT_NAME << ", version " << VERSION << "\n"
|
||||
<< std::endl;
|
||||
|
||||
if (std::is_same<decltype(NULL), decltype(0)>::value) {
|
||||
std::cout << "NULL == 0" << std::endl;
|
||||
}
|
||||
|
||||
if (std::is_same<decltype(NULL), decltype((void *)0)>::value) {
|
||||
std::cout << "NULL == (void *)0" << std::endl;
|
||||
}
|
||||
|
||||
if (std::is_same<decltype(NULL), decltype(__null)>::value) {
|
||||
std::cout << "NULL == __null" << std::endl;
|
||||
}
|
||||
|
||||
if (std::is_same<decltype(NULL), std::nullptr_t>::value) {
|
||||
std::cout << "NULL == nullptr" << std::endl;
|
||||
}
|
||||
|
||||
call_test(0);
|
||||
call_test(nullptr);
|
||||
null::test();
|
||||
|
||||
std::cout << "\nExiting" << std::endl;
|
||||
|
||||
|
29
src/null.cpp
Normal file
29
src/null.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
#include <iostream>
|
||||
#include <type_traits>
|
||||
|
||||
#include "null.h"
|
||||
|
||||
void call_test(char *) { std::cout << "call_test(char *) called" << std::endl; }
|
||||
|
||||
void call_test(int) { std::cout << "call_test(int) called" << std::endl; }
|
||||
|
||||
void null::test() {
|
||||
if (std::is_same<decltype(NULL), decltype(0)>::value) {
|
||||
std::cout << "NULL == 0" << std::endl;
|
||||
}
|
||||
|
||||
if (std::is_same<decltype(NULL), decltype((void *)0)>::value) {
|
||||
std::cout << "NULL == (void *)0" << std::endl;
|
||||
}
|
||||
|
||||
if (std::is_same<decltype(NULL), decltype(__null)>::value) {
|
||||
std::cout << "NULL == __null" << std::endl;
|
||||
}
|
||||
|
||||
if (std::is_same<decltype(NULL), std::nullptr_t>::value) {
|
||||
std::cout << "NULL == nullptr" << std::endl;
|
||||
}
|
||||
|
||||
call_test(0);
|
||||
call_test(nullptr);
|
||||
}
|
5
src/null.h
Normal file
5
src/null.h
Normal file
@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
namespace null {
|
||||
void test();
|
||||
};
|
Reference in New Issue
Block a user