1212 * -----------------------------------------------------------------------------
1313 */
1414#include < fossil/test/framework.h>
15-
1615#include " fossil/sys/framework.h"
1716
1817#ifndef cnull
@@ -35,12 +34,12 @@ FOSSIL_TEST_SUITE(cpp_null_suite);
3534
3635// Setup function for the test suite
3736FOSSIL_SETUP (cpp_null_suite) {
38- // Setup code here
37+ // Setup code if needed
3938}
4039
4140// Teardown function for the test suite
4241FOSSIL_TEARDOWN (cpp_null_suite) {
43- // Teardown code here
42+ // Cleanup if needed
4443}
4544
4645// * * * * * * * * * * * * * * * * * * * * * * * *
@@ -51,48 +50,75 @@ FOSSIL_TEARDOWN(cpp_null_suite) {
5150// as samples for library usage.
5251// * * * * * * * * * * * * * * * * * * * * * * * *
5352
54- // Test cases for cnull
55- FOSSIL_TEST_CASE (cpp_test_cnull_definition) {
56- // Test cnull definition
53+ // ** Test cppnull and cppnullptr Definitions **
54+ FOSSIL_TEST_CASE (cpp_test_cppnull_definition) {
5755#if __cplusplus >= 201103L || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L)
58- // C++11 or later, C23 or later
5956 ASSUME_ITS_EQUAL_PTR (cnull, nullptr );
6057 ASSUME_ITS_EQUAL_PTR (cnullptr, nullptr );
6158#else
62- // Pre-C++11 or C23
6359 #if defined(_WIN64) || defined(_WIN32)
64- // Windows
6560 ASSUME_ITS_EQUAL_PTR (cnull, 0 );
6661 ASSUME_ITS_EQUAL_PTR (cnullptr, 0 );
6762 #else
68- // POSIX, macOS, and embedded systems
6963 ASSUME_ITS_EQUAL_PTR (cnull, (void *)(0 ));
7064 ASSUME_ITS_EQUAL_PTR (cnullptr, (void *)(0 ));
7165 #endif
7266#endif
7367}
7468
75- FOSSIL_TEST_CASE (cpp_test_cnull_assignment) {
76- // Test cnull assignment
69+ // ** Test cppnull Assignment **
70+ FOSSIL_TEST_CASE (cpp_test_cppnull_assignment) {
7771 void *ptr = cnull;
7872 ASSUME_ITS_EQUAL_PTR (ptr, cnull);
7973}
8074
81- FOSSIL_TEST_CASE (cpp_test_cnull_comparison) {
82- // Test cnull comparison
75+ // ** Test cppnull Comparison **
76+ FOSSIL_TEST_CASE (cpp_test_cppnull_comparison) {
8377 void *ptr = cnull;
8478 ASSUME_ITS_TRUE (ptr == cnull);
8579 ASSUME_ITS_FALSE (ptr != cnull);
8680}
8781
82+ // ** Test cppnullify Macro **
83+ FOSSIL_TEST_CASE (cpp_test_cppnullify) {
84+ void *ptr = (void *)1 ;
85+ cnullify (ptr);
86+ ASSUME_ITS_EQUAL_PTR (ptr, cnull);
87+ }
88+
89+ // ** Test cppnotnull Macro **
90+ FOSSIL_TEST_CASE (cpp_test_cppnotnull) {
91+ void *ptr = (void *)1 ;
92+ ASSUME_ITS_TRUE (cnotnull (ptr));
93+ cnullify (ptr);
94+ ASSUME_ITS_FALSE (cnotnull (ptr));
95+ }
96+
97+ // ** Test cppmaybe Macro **
98+ FOSSIL_TEST_CASE (cpp_test_cppmaybe) {
99+ void *ptr = (void *)1 ;
100+ ASSUME_ITS_EQUAL_PTR (cmaybe (ptr, (void *)99 ), ptr);
101+ cnullify (ptr);
102+ ASSUME_ITS_EQUAL_PTR (cmaybe (ptr, (void *)99 ), (void *)99 );
103+ }
104+
105+ // ** Test Empty String Macros **
106+ FOSSIL_TEST_CASE (cpp_test_cppempty_strings) {
107+ ASSUME_ITS_EQUAL_CSTR (cempty, " " );
108+ ASSUME_ITS_EQUAL_WSTR (wempty, L" " );
109+ }
110+
88111// * * * * * * * * * * * * * * * * * * * * * * * *
89112// * Fossil Logic Test Pool
90113// * * * * * * * * * * * * * * * * * * * * * * * *
91-
92114FOSSIL_TEST_GROUP (cpp_null_tests) {
93- FOSSIL_TEST_ADD (cpp_null_suite, cpp_test_cnull_definition);
94- FOSSIL_TEST_ADD (cpp_null_suite, cpp_test_cnull_assignment);
95- FOSSIL_TEST_ADD (cpp_null_suite, cpp_test_cnull_comparison);
115+ FOSSIL_TEST_ADD (cpp_null_suite, cpp_test_cppnull_definition);
116+ FOSSIL_TEST_ADD (cpp_null_suite, cpp_test_cppnull_assignment);
117+ FOSSIL_TEST_ADD (cpp_null_suite, cpp_test_cppnull_comparison);
118+ FOSSIL_TEST_ADD (cpp_null_suite, cpp_test_cppnullify);
119+ FOSSIL_TEST_ADD (cpp_null_suite, cpp_test_cppnotnull);
120+ FOSSIL_TEST_ADD (cpp_null_suite, cpp_test_cppmaybe);
121+ FOSSIL_TEST_ADD (cpp_null_suite, cpp_test_cppempty_strings);
96122
97123 FOSSIL_TEST_REGISTER (cpp_null_suite);
98124}
0 commit comments