Skip to content

Commit db6058a

Browse files
committed
test:bool add test
1 parent 9373790 commit db6058a

File tree

7 files changed

+57
-11
lines changed

7 files changed

+57
-11
lines changed

src/bool/logbool.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
#include <stdio.h>
22
#include <stdbool.h>
33

4+
#include "my_bool.h"
5+
46
bool logical_not(bool a)
57
{
68
printf("c++ input boolean: %d size %zu\n", a, sizeof(a));
79

810
return !a;
911
}
12+
13+
bool bool_true(){ return true; }
14+
bool bool_false(){ return false; }

src/bool/logbool.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
#include <iostream>
22

3-
extern "C" bool logical_not(bool a)
4-
{
3+
#include "my_bool.h"
54

5+
bool logical_not(bool a)
6+
{
67
std::cout << "c++ input boolean: " << a << " size " << sizeof(a) << "\n";
78

89
return !a;
9-
1010
}
11+
12+
bool bool_true(){ return true; }
13+
bool bool_false(){ return false; }

src/bool/logbool.f90

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,13 @@ logical(c_bool) function logical_not(L) bind(C)
3131

3232
end function logical_not
3333

34+
35+
logical(C_BOOL) function bool_true() bind(C)
36+
bool_true = .true._C_BOOL
37+
end function
38+
39+
logical(C_BOOL) function bool_false() bind(C)
40+
bool_false = .false._C_BOOL
41+
end function
42+
3443
end module logbool

src/bool/my_bool.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ extern "C" {
44

55
bool logical_not(bool);
66

7+
bool bool_true();
8+
bool bool_false();
9+
710
#ifdef __cplusplus
811
}
912
#endif

test/bool/CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ add_library(bool_fortran ${PROJECT_SOURCE_DIR}/src/bool/logbool.f90)
44
target_include_directories(bool_fortran INTERFACE ${PROJECT_SOURCE_DIR}/src/bool)
55

66
add_library(bool_cxx ${PROJECT_SOURCE_DIR}/src/bool/logbool.cpp)
7-
target_include_directories(bool_cxx INTERFACE ${PROJECT_SOURCE_DIR}/src/bool)
7+
target_include_directories(bool_cxx PUBLIC ${PROJECT_SOURCE_DIR}/src/bool)
88

99
add_library(bool_c ${PROJECT_SOURCE_DIR}/src/bool/logbool.c)
10-
target_include_directories(bool_c INTERFACE ${PROJECT_SOURCE_DIR}/src/bool)
10+
target_include_directories(bool_c PUBLIC ${PROJECT_SOURCE_DIR}/src/bool)
1111

1212
add_executable(c_fortran_bool main.c)
1313
target_link_libraries(c_fortran_bool PRIVATE bool_fortran)
@@ -31,6 +31,6 @@ add_executable(c_cxx_bool main.c)
3131
target_link_libraries(c_cxx_bool PRIVATE bool_cxx)
3232
add_test(NAME C_Cpp_bool COMMAND c_cxx_bool)
3333

34-
add_executable(cxx_bool main.cpp)
35-
target_link_libraries(cxx_bool PRIVATE bool_cxx)
36-
add_test(NAME Cpp_bool COMMAND cxx_bool)
34+
add_executable(cxx_c_bool main.cpp)
35+
target_link_libraries(cxx_c_bool PRIVATE bool_c)
36+
add_test(NAME Cpp_bool COMMAND cxx_c_bool)

test/bool/main.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,28 @@
66

77
int main(void){
88

9-
bool b = logical_not(true);
9+
bool b;
1010
int c = 0;
1111

12+
b = bool_true();
13+
if(!b){
14+
fprintf(stderr, "bool_true() failed: %d\n", b);
15+
c++;
16+
}
17+
18+
b = bool_false();
19+
if(b){
20+
fprintf(stderr, "bool_false() failed: %d\n", b);
21+
c++;
22+
}
23+
24+
b = logical_not(true);
1225
if(b) {
1326
fprintf(stderr, "logical_not(true) should be false: %d\n", b);
1427
c++;
1528
}
1629

1730
b = logical_not(false);
18-
1931
if (!b) {
2032
fprintf(stderr, "logical_not(false) should be true: %d\n", b);
2133
c++;

test/bool/main.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,22 @@
66

77
int main(){
88

9-
bool b = logical_not(true);
109
int c = 0;
10+
bool b;
11+
12+
b = bool_true();
13+
if(!b){
14+
std::cerr << "bool_true() failed: " << b << "\n";
15+
c++;
16+
}
17+
18+
b = bool_false();
19+
if(b){
20+
std::cerr << "bool_false() failed: " << b << "\n";
21+
c++;
22+
}
23+
24+
b = logical_not(true);
1125

1226
if(b){
1327
std::cerr << "logical_not(true) failed: " << b << "\n";

0 commit comments

Comments
 (0)