Commit ecb4471e authored by sletz's avatar sletz
Browse files

Add tests to validate intclient.h API.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4006 0c269be4-1314-0410-8aa9-9f06e86f4224
parent 954d6de6
......@@ -30,7 +30,11 @@ Arnold Krille
Jackdmp changes log
---------------------------
2010-04-016 Stephane Letz <letz@grame.fr>
2010-05-016 Stephane Letz <letz@grame.fr>
* Add tests to validate intclient.h API.
2010-04-16 Stephane Letz <letz@grame.fr>
* Make jack_connect/jack_disconnect wait for effective port connection/disconnection.
......
......@@ -1027,7 +1027,8 @@ int JackClient::InternalClientLoad(const char* client_name, jack_options_t optio
return 0;
}
int int_ref, result = -1;
int int_ref = 0;
int result = -1;
fChannel->InternalClientLoad(GetClientControl()->fRefNum, client_name, va->load_name, va->load_init, options, (int*)status, &int_ref, &result);
return int_ref;
}
......
......@@ -17,9 +17,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <signal.h>
#ifndef WIN32
#include <unistd.h>
#include <unistd.h>
#endif
#include <getopt.h>
#include <jack/jack.h>
......@@ -126,7 +126,7 @@ parse_args (int argc, char *argv[])
int
main (int argc, char *argv[])
{
jack_status_t status;
jack_status_t status;
char* name;
/* parse and validate command arguments */
......@@ -157,8 +157,8 @@ main (int argc, char *argv[])
(JackLoadName|JackLoadInit),
&status, load_name, load_init);
if (status & JackFailure) {
fprintf (stderr, "could not load %s, status = 0x%2.0x\n",
load_name, status);
fprintf (stderr, "could not load %s, intclient = %d status = 0x%2.0x\n",
load_name, intclient, status);
return 2;
}
if (status & JackNameNotUnique) {
......@@ -178,23 +178,23 @@ main (int argc, char *argv[])
if (wait_opt) {
/* define a signal handler to unload the client, then
* wait for it to exit */
#ifdef WIN32
signal(SIGINT, signal_handler);
signal(SIGABRT, signal_handler);
signal(SIGTERM, signal_handler);
#else
signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGHUP, signal_handler);
signal(SIGINT, signal_handler);
#endif
while (1) {
#ifdef WIN32
Sleep(1000);
* wait for it to exit */
#ifdef WIN32
signal(SIGINT, signal_handler);
signal(SIGABRT, signal_handler);
signal(SIGTERM, signal_handler);
#else
signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGHUP, signal_handler);
signal(SIGINT, signal_handler);
#endif
while (1) {
#ifdef WIN32
Sleep(1000);
#else
sleep (1);
sleep (1);
#endif
}
}
......
......@@ -35,6 +35,7 @@
#include <assert.h>
#include <stdarg.h>
#include <jack/jack.h>
#include <jack/intclient.h>
#include <jack/transport.h>
......@@ -632,7 +633,57 @@ int main (int argc, char *argv[])
if (status & JackServerStarted) {
fprintf(stderr, "JACK server started\n");
}
/**
* Internal client tests...
*
*/
jack_intclient_t intclient;
Log("trying to load the \"inprocess\" server internal client \n");
intclient = jack_internal_client_load (client1, "inprocess",
(jack_options_t)(JackLoadName|JackLoadInit),
&status, "inprocess", "");
if (intclient == 0 || status & JackFailure) {
printf("!!! ERROR !!! cannot load internal client \"inprocess\" intclient %d status 0x%2.0x !\n", intclient, status);
} else {
Log("\"inprocess\" server internal client loaded\n");
char* internal_name = jack_get_internal_client_name(client1, intclient);
if (strcmp(internal_name, "inprocess") == 0) {
Log("jack_get_internal_client_name returns %s\n", internal_name);
} else {
printf("!!! ERROR !!! jack_get_internal_client_name returns incorrect name %s\n", internal_name);
}
jack_intclient_t intclient1 = jack_internal_client_handle(client1, "inprocess", &status);
if (intclient1 == intclient) {
Log("jack_internal_client_handle returns correct handle\n");
} else {
printf("!!! ERROR !!! jack_internal_client_handle returns incorrect handle %d\n", intclient1);
}
// Unload internal client
status = jack_internal_client_unload (client1, intclient);
if (status == 0) {
Log("jack_internal_client_unload done first time returns correct value\n");
} else {
printf("!!! ERROR !!! jack_internal_client_unload returns incorrect value 0x%2.0x\n", status);
}
// Unload internal client second time
status = jack_internal_client_unload (client1, intclient);
if (status & JackFailure && status & JackNoSuchClient) {
Log("jack_internal_client_unload done second time returns correct value\n");
} else {
printf("!!! ERROR !!! jack_internal_client_unload returns incorrect value 0x%2.0x\n", status);
}
}
/**
* try to register another one with the same name...
*
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment