Browse Source

Change the strerror_override handling to check $_JSON_C_STRERROR_OVERRIDE instead of using a variable, so we don't need to export it.

tags/json-c-0.15-20200726
Eric Haszlakiewicz 5 years ago
parent
commit
6068d3f6d1
5 changed files with 11 additions and 7 deletions
  1. +4
    -1
      strerror_override.c
  2. +4
    -0
      tests/CMakeLists.txt
  3. +2
    -0
      tests/test_basic.test
  4. +1
    -4
      tests/test_json_pointer.c
  5. +0
    -2
      tests/test_util_file.c

+ 4
- 1
strerror_override.c View File

@@ -59,7 +59,8 @@ static struct
/* clang-format on */

// Enabled during tests
int _json_c_strerror_enable = 0;
static int _json_c_strerror_enable = 0;
extern char *getenv(const char *name); // Avoid including stdlib.h

#define PREFIX "ERRNO="
static char errno_buf[128] = PREFIX;
@@ -70,6 +71,8 @@ char *_json_c_strerror(int errno_in)
int ii, jj;

if (!_json_c_strerror_enable)
_json_c_strerror_enable = (getenv("_JSON_C_STRERROR_ENABLE") == NULL) ? -1 : 1;
if (_json_c_strerror_enable == -1)
return strerror(errno_in);

// Avoid standard functions, so we don't need to include any


+ 4
- 0
tests/CMakeLists.txt View File

@@ -37,6 +37,10 @@ foreach(TESTNAME
test_object_iterator)

add_executable(${TESTNAME} ${TESTNAME}.c)
if(${TESTNAME} STREQUAL test_util_file)
# For output consistency, we need _json_c_strerror() in some tests:
target_sources(${TESTNAME} PRIVATE ../strerror_override.c)
endif()
add_test(NAME ${TESTNAME} COMMAND ${PROJECT_SOURCE_DIR}/tests/${TESTNAME}.test)

# XXX using the non-target_ versions of these doesn't work :(


+ 2
- 0
tests/test_basic.test View File

@@ -1,5 +1,7 @@
#!/bin/sh

export _JSON_C_STRERROR_ENABLE=1

# Common definitions
if test -z "$srcdir"; then
srcdir="${0%/*}"


+ 1
- 4
tests/test_json_pointer.c View File

@@ -1,9 +1,8 @@
#include "strerror_override.h"
#include "strerror_override_private.h"
#ifdef NDEBUG
#undef NDEBUG
#endif
#include <assert.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>

@@ -320,8 +319,6 @@ static void test_wrong_inputs_set(void)

int main(int argc, char **argv)
{
_json_c_strerror_enable = 1;

test_example_get();
test_recursion_get();
test_wrong_inputs_get();


+ 0
- 2
tests/test_util_file.c View File

@@ -127,8 +127,6 @@ int main(int argc, char **argv)
// json_object_to_file(file, obj);
// json_object_to_file_ext(file, obj, flags);

_json_c_strerror_enable = 1;

const char *testdir;
if (argc < 2)
{


Loading…
Cancel
Save