1
mirror of https://code.videolan.org/videolan/vlc synced 2024-09-28 23:09:59 +02:00
vlc/test/libvlc/test.h
2019-01-17 12:21:18 +01:00

104 lines
3.2 KiB
C

/*
* test.h - libvlc smoke test common definitions
*
*/
/**********************************************************************
* Copyright (C) 2007 Rémi Denis-Courmont. *
* Copyright (C) 2008 Pierre d'Herbemont. *
* This program is free software; you can redistribute and/or modify *
* it under the terms of the GNU General Public License as published *
* by the Free Software Foundation; version 2 of the license, or (at *
* your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* See the GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, you can get it from: *
* http://www.gnu.org/copyleft/gpl.html *
**********************************************************************/
#ifndef TEST_H
#define TEST_H
/*********************************************************************
* Some useful common headers
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <vlc/vlc.h>
#undef NDEBUG
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#include <signal.h>
/*********************************************************************
* Some useful global var
*/
static const char * test_defaults_args[] = {
"-v", "--vout=vdummy",
};
static const int test_defaults_nargs =
sizeof (test_defaults_args) / sizeof (test_defaults_args[0]);
/*static const char test_default_sample[] = "samples/test.sample";*/
static const char test_default_sample[] = SRCDIR"/samples/empty.voc";
static const char test_default_video[] = SRCDIR"/samples/image.jpg";
/*********************************************************************
* Some useful common functions
*/
#define test_log( ... ) printf( "testapi: " __VA_ARGS__ );
static inline void on_timeout(int signum)
{
assert(signum == SIGALRM);
abort(); /* Cause a core dump */
}
static inline void test_init (void)
{
(void)test_default_sample; /* This one may not be used */
/* Make sure "make check" does not get stuck */
/* Timeout of 10secs by default */
unsigned alarm_timeout = 10;
/* Valid timeout value are < 0, for infinite, and > 0, for the number of
* seconds */
char *alarm_timeout_str = getenv("VLC_TEST_TIMEOUT");
if (alarm_timeout_str)
{
int val = atoi(alarm_timeout_str);
if (val <= 0)
alarm_timeout = 0; /* infinite */
else
alarm_timeout = val;
}
if (alarm_timeout != 0)
{
struct sigaction sig = {
.sa_handler = on_timeout,
};
sigaction(SIGALRM, &sig, NULL);
alarm (alarm_timeout);
}
setenv( "VLC_PLUGIN_PATH", "../modules", 1 );
}
#endif /* TEST_H */