Skip to content

Commit

Permalink
src: Try a bit more to avoid unsafe buffer usage
Browse files Browse the repository at this point in the history
  • Loading branch information
goldsteinn committed Feb 7, 2024
1 parent d1eade2 commit f1d4ce4
Show file tree
Hide file tree
Showing 8 changed files with 84 additions and 52 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
${PROJECT_SOURCE_DIR}/src/eztest/eztest-c-asserts-impl.h
${PROJECT_SOURCE_DIR}/src/eztest/eztest-compiler-warnings.h
${PROJECT_SOURCE_DIR}/src/eztest/eztest-compiler.h
${PROJECT_SOURCE_DIR}/src/eztest/eztest-containers.h
${PROJECT_SOURCE_DIR}/src/eztest/eztest-cxx-asserts-impl.h
${PROJECT_SOURCE_DIR}/src/eztest/eztest-duration.h
${PROJECT_SOURCE_DIR}/src/eztest/eztest-fail.h
Expand Down
98 changes: 55 additions & 43 deletions include/eztest/eztest.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#define EZTEST_EZTEST_H_
/*
* Single header of entire eztest suite.
* Generated: 2024-02-06 15:53:55.044727
* Generated: 2024-02-07 13:46:30.213660
*/
/* Begin include of: eztest.h */

Expand Down Expand Up @@ -566,7 +566,7 @@ EZTEST_DISABLE_WSYSTEM_HEADERS_

/* Begin include of: eztest-asserts-impl.h */

/* Begin include of: eztest-fail.h */
/* Begin include of: eztest-containers.h */

/* Begin include of: eztest-lang.h */

Expand Down Expand Up @@ -687,44 +687,6 @@ EZTEST_DISABLE_WSYSTEM_HEADERS_


/* End include of: eztest-lang.h */


EZTEST_NAMESPACE_BEGIN_

/* NOLINTBEGIN(bugprone-easily-swappable-parameters) */
EZTEST_PRIVATE_ int
eztest_cur_test_getmod_failed(int eztest_set, int eztest_val) {
/* NOLINTEND(bugprone-easily-swappable-parameters) */
static int eztest_S_cur_test_failed = 0;
if (eztest_set == 0) {
return eztest_S_cur_test_failed;
}
eztest_S_cur_test_failed = eztest_val;
return 0;
}

EZTEST_DISABLE_WUNUSED_FUNCTION_
EZTEST_PRIVATE_ void
eztest_cur_test_set_failed(EZTEST_VOID_ARG_) {
(void)EZTEST_NS_ eztest_cur_test_getmod_failed(1, 1);
}
EZTEST_REENABLE_WUNUSED_FUNCTION_

EZTEST_PRIVATE_ void
eztest_cur_test_set_success(EZTEST_VOID_ARG_) {
(void)EZTEST_NS_ eztest_cur_test_getmod_failed(1, 0);
}

EZTEST_PRIVATE_ int
eztest_cur_test_result(EZTEST_VOID_ARG_) {
return EZTEST_NS_ eztest_cur_test_getmod_failed(0, 0);
}

EZTEST_NAMESPACE_END_

/* End include of: eztest-fail.h */
/* Begin include of: eztest-float-compare.h */

/* Begin include of: eztest-libc.h */


Expand Down Expand Up @@ -971,6 +933,55 @@ EZTEST_NAMESPACE_END_

#endif
/* End include of: eztest-libc.h */


#if EZTEST_CXX_LANG_ >= 2011
# include <array>
# define EZTEST_ARR_BUILDER_(name, T, k_n) EZTEST_STD_NS_ array<T, k_n> name
#else
# define EZTEST_ARR_BUILDER_(name, T, k_n) T name[k_n]
#endif

/* End include of: eztest-containers.h */
/* Begin include of: eztest-fail.h */


EZTEST_NAMESPACE_BEGIN_

/* NOLINTBEGIN(bugprone-easily-swappable-parameters) */
EZTEST_PRIVATE_ int
eztest_cur_test_getmod_failed(int eztest_set, int eztest_val) {
/* NOLINTEND(bugprone-easily-swappable-parameters) */
static int eztest_S_cur_test_failed = 0;
if (eztest_set == 0) {
return eztest_S_cur_test_failed;
}
eztest_S_cur_test_failed = eztest_val;
return 0;
}

EZTEST_DISABLE_WUNUSED_FUNCTION_
EZTEST_PRIVATE_ void
eztest_cur_test_set_failed(EZTEST_VOID_ARG_) {
(void)EZTEST_NS_ eztest_cur_test_getmod_failed(1, 1);
}
EZTEST_REENABLE_WUNUSED_FUNCTION_

EZTEST_PRIVATE_ void
eztest_cur_test_set_success(EZTEST_VOID_ARG_) {
(void)EZTEST_NS_ eztest_cur_test_getmod_failed(1, 0);
}

EZTEST_PRIVATE_ int
eztest_cur_test_result(EZTEST_VOID_ARG_) {
return EZTEST_NS_ eztest_cur_test_getmod_failed(0, 0);
}

EZTEST_NAMESPACE_END_

/* End include of: eztest-fail.h */
/* Begin include of: eztest-float-compare.h */

/* Begin include of: eztest-libm.h */


Expand Down Expand Up @@ -1146,7 +1157,6 @@ EZTEST_NAMESPACE_BEGIN_
EZTEST_PRIVATE_CXX_INL_ int
eztest_hex_print_var(const uint8_t * eztest_op,
EZTEST_STD_NS_ size_t eztest_op_size) {

EZTEST_REENABLE_WUNSAFE_BUFFER_USAGE_
static const EZTEST_STD_NS_ size_t eztest_k_hexstr_max_bytes = 40;
EZTEST_STD_NS_ size_t eztest_op_cur_idx = 0;
Expand Down Expand Up @@ -3155,8 +3165,10 @@ EZTEST_NAMESPACE_BEGIN_
EZTEST_DISABLE_WPADDED_
struct eztest_results_t {
EZTEST_DURATION_T_ eztest_suite_duration_;
unsigned eztest_stats_[EZTEST_NS_ eztest_k_status_end];
unsigned eztest_num_groups_;
EZTEST_ARR_BUILDER_(eztest_stats_,
unsigned,
EZTEST_NS_ eztest_k_status_end);
unsigned eztest_num_groups_;
};
EZTEST_REENABLE_WPADDED_
#define EZTEST_RESULTS_T_ EZTEST_STRUCT_NS_ eztest_results_t
Expand Down
1 change: 1 addition & 0 deletions src/eztest/eztest-asserts-impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define EZTEST_D_EZTEST_D_EZTEST_ASSERTS_IMPL_H_

#include "eztest-compiler.h"
#include "eztest-containers.h"
#include "eztest-fail.h"
#include "eztest-float-compare.h"
#include "eztest-hex-var-printer.h"
Expand Down
2 changes: 1 addition & 1 deletion src/eztest/eztest-compiler-warnings.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef EZTEST_D_EZTEST_D_EZTEST_COMPILER_WARNINGS_H_
#define EZTEST_D_EZTEST_D_EZTEST_COMPILER_WARNINGS_H_
#define EZTEST_D_EZTEST_D_EZTEST_COMPILER_WARNINGS_H_

#include "eztest-lang-bits.h"

Expand Down
15 changes: 15 additions & 0 deletions src/eztest/eztest-containers.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#ifndef EZTEST_D_EZTEST_D_EZTEST_CONTAINERS_H_
#define EZTEST_D_EZTEST_D_EZTEST_CONTAINERS_H_

#include "eztest-lang.h"
#include "eztest-libc.h"


#if EZTEST_CXX_LANG_ >= 2011
# include <array>
# define EZTEST_ARR_BUILDER_(name, T, k_n) EZTEST_STD_NS_ array<T, k_n> name
#else
# define EZTEST_ARR_BUILDER_(name, T, k_n) T name[k_n]
#endif

#endif
1 change: 0 additions & 1 deletion src/eztest/eztest-hex-var-printer.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ EZTEST_NAMESPACE_BEGIN_
EZTEST_PRIVATE_CXX_INL_ int
eztest_hex_print_var(const uint8_t * eztest_op,
EZTEST_STD_NS_ size_t eztest_op_size) {

EZTEST_REENABLE_WUNSAFE_BUFFER_USAGE_
static const EZTEST_STD_NS_ size_t eztest_k_hexstr_max_bytes = 40;
EZTEST_STD_NS_ size_t eztest_op_cur_idx = 0;
Expand Down
15 changes: 9 additions & 6 deletions src/eztest/eztest-results.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#ifndef EZTEST_D_EZTEST_D_EZTEST_RESULTS_H_
#define EZTEST_D_EZTEST_D_EZTEST_RESULTS_H_

#include "eztest-containers.h"
#include "eztest-duration.h"
#include "eztest-lang.h"
#include "eztest-libc.h"
Expand All @@ -10,7 +11,9 @@ EZTEST_NAMESPACE_BEGIN_
EZTEST_DISABLE_WPADDED_
struct eztest_results_t {
EZTEST_DURATION_T_ eztest_suite_duration_;
unsigned eztest_stats_[EZTEST_NS_ eztest_k_status_end];
EZTEST_ARR_BUILDER_(eztest_stats_,
unsigned,
EZTEST_NS_ eztest_k_status_end);
unsigned eztest_num_groups_;
};
EZTEST_REENABLE_WPADDED_
Expand All @@ -21,7 +24,7 @@ EZTEST_REENABLE_WPADDED_

EZTEST_PRIVATE_ unsigned
eztest_results_count_failed(const EZTEST_RESULTS_T_ * eztest_results) {

unsigned eztest_cnt = 0;
EZTEST_DISABLE_WUNSAFE_BUFFER_USAGE_
eztest_cnt +=
Expand All @@ -39,7 +42,7 @@ eztest_results_count_failed(const EZTEST_RESULTS_T_ * eztest_results) {

EZTEST_PRIVATE_ unsigned
eztest_results_count_passed(const EZTEST_RESULTS_T_ * eztest_results) {

EZTEST_DISABLE_WUNSAFE_BUFFER_USAGE_
return eztest_results->eztest_stats_[EZTEST_NS_ eztest_k_status_passed];
EZTEST_REENABLE_WUNSAFE_BUFFER_USAGE_
Expand All @@ -48,7 +51,7 @@ eztest_results_count_passed(const EZTEST_RESULTS_T_ * eztest_results) {

EZTEST_PRIVATE_ unsigned
eztest_results_count_disabled(const EZTEST_RESULTS_T_ * eztest_results) {

EZTEST_DISABLE_WUNSAFE_BUFFER_USAGE_
return eztest_results->eztest_stats_[EZTEST_NS_ eztest_k_status_disabled];
EZTEST_REENABLE_WUNSAFE_BUFFER_USAGE_
Expand All @@ -57,7 +60,7 @@ eztest_results_count_disabled(const EZTEST_RESULTS_T_ * eztest_results) {

EZTEST_PRIVATE_ unsigned
eztest_results_count_unknown(const EZTEST_RESULTS_T_ * eztest_results) {

EZTEST_DISABLE_WUNSAFE_BUFFER_USAGE_
return eztest_results->eztest_stats_[EZTEST_NS_ eztest_k_status_unknown];
EZTEST_REENABLE_WUNSAFE_BUFFER_USAGE_
Expand All @@ -66,7 +69,7 @@ eztest_results_count_unknown(const EZTEST_RESULTS_T_ * eztest_results) {

EZTEST_PRIVATE_ unsigned
eztest_results_count_internal_errors(const EZTEST_RESULTS_T_ * eztest_results) {

unsigned eztest_cnt = 0;
EZTEST_DISABLE_WUNSAFE_BUFFER_USAGE_
eztest_cnt +=
Expand Down
3 changes: 2 additions & 1 deletion tests/cmake/compiler-options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ option(

set(
EZTEST_CLANG_18_0_0_WARNING_COMMON_FLAGS_
-Weverything
"-Weverything"
"-Wunsafe-buffer-usage -fsafe-buffer-usage-suggestions"
)

if(${EZTEST_STACK_ALLOC_LIMIT_} GREATER 0)
Expand Down

0 comments on commit f1d4ce4

Please sign in to comment.