mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 03:25:20 +00:00
tests: mock gnutls_dh_params_generate2
This function generates some big random numbers. Cache the result and supply it to any subsequent generate2 calls.
This commit is contained in:
parent
9f95593d60
commit
743bda062b
@ -633,7 +633,7 @@ mymain(void)
|
||||
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
}
|
||||
|
||||
VIRT_TEST_MAIN(mymain)
|
||||
VIRT_TEST_MAIN_PRELOAD(mymain, abs_builddir "/.libs/virrandommock.so")
|
||||
|
||||
#else
|
||||
|
||||
|
@ -487,7 +487,7 @@ mymain(void)
|
||||
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
}
|
||||
|
||||
VIRT_TEST_MAIN(mymain)
|
||||
VIRT_TEST_MAIN_PRELOAD(mymain, abs_builddir "/.libs/virrandommock.so")
|
||||
|
||||
#else
|
||||
|
||||
|
@ -37,3 +37,43 @@ virRandomBytes(unsigned char *buf,
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#ifdef WITH_GNUTLS
|
||||
# include <stdio.h>
|
||||
# include <gnutls/gnutls.h>
|
||||
|
||||
static int (*real_gnutls_dh_params_generate2)(gnutls_dh_params_t dparams,
|
||||
unsigned int bits);
|
||||
|
||||
static gnutls_dh_params_t params_cache;
|
||||
static unsigned int cachebits;
|
||||
|
||||
int
|
||||
gnutls_dh_params_generate2(gnutls_dh_params_t dparams,
|
||||
unsigned int bits)
|
||||
{
|
||||
int rc = 0;
|
||||
|
||||
VIR_MOCK_REAL_INIT(gnutls_dh_params_generate2);
|
||||
|
||||
if (!params_cache) {
|
||||
if (gnutls_dh_params_init(¶ms_cache) < 0) {
|
||||
fprintf(stderr, "Error initializing params cache");
|
||||
abort();
|
||||
}
|
||||
rc = real_gnutls_dh_params_generate2(params_cache, bits);
|
||||
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
cachebits = bits;
|
||||
}
|
||||
|
||||
if (cachebits != bits) {
|
||||
fprintf(stderr, "Requested bits do not match the cached value");
|
||||
abort();
|
||||
}
|
||||
|
||||
return gnutls_dh_params_cpy(dparams, params_cache);
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user