1
0
mirror of https://github.com/solemnwarning/ipxwrapper synced 2024-12-30 16:45:37 +01:00

Fix test suite build issues.

This commit is contained in:
Daniel Collins 2023-09-02 15:07:28 +01:00
parent 46fc990971
commit b987f7abc1
6 changed files with 29 additions and 22 deletions

View File

@ -1,5 +1,5 @@
/* IPXWrapper - Address cache
* Copyright (C) 2008-2012 Daniel Collins <solemnwarning@solemnwarning.net>
* Copyright (C) 2008-2023 Daniel Collins <solemnwarning@solemnwarning.net>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
@ -44,6 +44,15 @@ struct host_table {
size_t addrlen;
};
/* time() wrapper function to enable the unit tests to mock it. */
static time_t addrcache_time_impl(void)
{
return time(NULL);
}
time_t (*addrcache_time)(void) = &addrcache_time_impl;
typedef struct host_table host_table_t;
typedef struct host_table_key host_table_key_t;
@ -127,7 +136,7 @@ int addr_cache_get(SOCKADDR_STORAGE *addr, size_t *addrlen, addr32_t net, addr48
host_table_t *host = host_table_find(net, node, sock);
if(host && time(NULL) < host->time + ADDR_CACHE_TTL)
if(host && addrcache_time() < host->time + ADDR_CACHE_TTL)
{
memcpy(addr, &(host->addr), host->addrlen);
*addrlen = host->addrlen;
@ -181,7 +190,7 @@ void addr_cache_set(const struct sockaddr *addr, size_t addrlen, addr32_t net, a
memcpy(&(host->addr), addr, addrlen);
host->addrlen = addrlen;
host->time = time(NULL);
host->time = addrcache_time();
host_table_unlock();
}

View File

@ -1,5 +1,5 @@
/* IPXWrapper test suite
* Copyright (C) 2014 Daniel Collins <solemnwarning@solemnwarning.net>
* Copyright (C) 2014-2023 Daniel Collins <solemnwarning@solemnwarning.net>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
@ -18,8 +18,8 @@
#include <stdio.h>
#include <string.h>
#include "tests/tap/basic.h"
#include "src/addr.h"
#include "tap/basic.h"
#include "../src/addr.h"
static char *dump32(const void *p)
{

View File

@ -1,5 +1,5 @@
/* IPXWrapper test suite
* Copyright (C) 2017 Daniel Collins <solemnwarning@solemnwarning.net>
* Copyright (C) 2017-2023 Daniel Collins <solemnwarning@solemnwarning.net>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
@ -19,22 +19,17 @@
#include <string.h>
#include <time.h>
#include "src/addr.h"
#include "src/addrcache.h"
#include "src/common.h"
#include "tests/tap/basic.h"
#include "../src/addr.h"
#include "../src/addrcache.h"
#include "../src/common.h"
#include "tap/basic.h"
/* Mock time() so we can test timing out of address cache records */
static time_t now = 0;
time_t __cdecl time(time_t *_Time)
static time_t mock_time(void)
{
if(_Time != NULL)
{
*_Time = now;
}
return now;
}
@ -61,6 +56,9 @@ const char *w32_error(DWORD errnum) {
int main()
{
extern time_t (*addrcache_time)(void);
addrcache_time = &mock_time;
plan_lazy();
{

View File

@ -1,5 +1,5 @@
/* IPXWrapper test suite
* Copyright (C) 2017 Daniel Collins <solemnwarning@solemnwarning.net>
* Copyright (C) 2017-2023 Daniel Collins <solemnwarning@solemnwarning.net>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
@ -20,8 +20,8 @@
#include <stdio.h>
#include <string.h>
#include "tests/tap/basic.h"
#include "src/ethernet.h"
#include "tap/basic.h"
#include "../src/ethernet.h"
#define CHECK_FRAME_SIZE(func, input, output) \
is_int((output), func(input), #func "(" #input ") returns " #output)

View File

@ -49,7 +49,7 @@
#include <sys/types.h>
#include <unistd.h>
#include <tests/tap/basic.h>
#include "basic.h"
/* Windows provides mkdir and rmdir under different names. */
#ifdef _WIN32

View File

@ -30,7 +30,7 @@
#ifndef TAP_BASIC_H
#define TAP_BASIC_H 1
#include <tests/tap/macros.h>
#include "macros.h"
#include <stdarg.h> /* va_list */
#include <stddef.h> /* size_t */