Fix 'make check' when builddir != srcdir

This commit is contained in:
Stu Tomlinson
2022-03-18 14:15:13 +00:00
parent a771b3d4fe
commit 1d6714c59b

View File

@@ -13,6 +13,7 @@
#include <assert.h> #include <assert.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <sys/param.h>
#include "strophe.h" #include "strophe.h"
@@ -44,6 +45,8 @@ int main()
{1, NULL, "tests/cert.pfx"}, {1, NULL, "tests/cert.pfx"},
}; };
const char *srcdir;
char *certbuf, *keybuf;
char xmppaddr_num[] = "0"; char xmppaddr_num[] = "0";
unsigned int m, n; unsigned int m, n;
@@ -51,13 +54,26 @@ int main()
log = xmpp_get_default_logger(XMPP_LEVEL_DEBUG); log = xmpp_get_default_logger(XMPP_LEVEL_DEBUG);
ctx = xmpp_ctx_new(NULL, log); ctx = xmpp_ctx_new(NULL, log);
srcdir = getenv("srcdir");
certbuf = malloc(MAXPATHLEN);
keybuf = malloc(MAXPATHLEN);
for (m = 0; m < sizeof(client_cert) / sizeof(client_cert[0]); ++m) { for (m = 0; m < sizeof(client_cert) / sizeof(client_cert[0]); ++m) {
char *certfile = certbuf, *keyfile = keybuf;
conn = xmpp_conn_new(ctx); conn = xmpp_conn_new(ctx);
if (client_cert[m].pem)
snprintf(certfile, MAXPATHLEN, "%s/%s", srcdir, client_cert[m].pem);
else
certfile = NULL;
snprintf(keyfile, MAXPATHLEN, "%s/%s", srcdir, client_cert[m].key);
if (client_cert[m].needs_callback) if (client_cert[m].needs_callback)
xmpp_conn_set_password_callback(conn, password_callback, NULL); xmpp_conn_set_password_callback(conn, password_callback, NULL);
xmpp_conn_set_client_cert(conn, client_cert[m].pem, client_cert[m].key); xmpp_conn_set_client_cert(conn, certfile, keyfile);
xmppaddr_num[0] = '0' + xmpp_conn_cert_xmppaddr_num(conn); xmppaddr_num[0] = '0' + xmpp_conn_cert_xmppaddr_num(conn);
@@ -88,6 +104,8 @@ int main()
} }
xmpp_conn_release(conn); xmpp_conn_release(conn);
} }
free(certbuf);
free(keybuf);
xmpp_ctx_free(ctx); xmpp_ctx_free(ctx);
xmpp_shutdown(); xmpp_shutdown();