Browse Source

Add tests to validate intclient.h API.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4006 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/v1.9.6
sletz 15 years ago
parent
commit
ecb4471edb
4 changed files with 80 additions and 24 deletions
  1. +5
    -1
      ChangeLog
  2. +2
    -1
      common/JackClient.cpp
  3. +21
    -21
      example-clients/ipload.c
  4. +52
    -1
      tests/test.cpp

+ 5
- 1
ChangeLog View File

@@ -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.



+ 2
- 1
common/JackClient.cpp View File

@@ -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;
}


+ 21
- 21
example-clients/ipload.c View File

@@ -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
}
}


+ 52
- 1
tests/test.cpp View File

@@ -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...
*


Loading…
Cancel
Save