mirror of https://code.videolan.org/videolan/vlc
tests: adaptive: run tests against static lib
(cherry picked from commit b4c035ca97
)
This commit is contained in:
parent
3c4d208ea5
commit
3568a389a4
|
@ -492,5 +492,13 @@ libadaptive_plugin_la_CXXFLAGS = $(libvlc_adaptive_la_CXXFLAGS)
|
|||
libadaptive_plugin_la_LIBADD = libvlc_adaptive.la
|
||||
demux_LTLIBRARIES += libadaptive_plugin.la
|
||||
|
||||
adaptive_test_SOURCES = \
|
||||
demux/adaptive/test/playlist/TemplatedUri.cpp \
|
||||
demux/adaptive/test/test.cpp \
|
||||
demux/adaptive/test/test.hpp
|
||||
adaptive_test_LDADD = libvlc_adaptive.la
|
||||
check_PROGRAMS += adaptive_test
|
||||
TESTS += adaptive_test
|
||||
|
||||
libnoseek_plugin_la_SOURCES = demux/filter/noseek.c
|
||||
demux_LTLIBRARIES += libnoseek_plugin.la
|
||||
|
|
|
@ -0,0 +1,169 @@
|
|||
/*****************************************************************************
|
||||
* dashuri.cpp
|
||||
*****************************************************************************
|
||||
* Copyright (C) 2018 VideoLabs, VideoLAN and VLC Authors
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published
|
||||
* by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||||
*****************************************************************************/
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include "../test.hpp"
|
||||
|
||||
#include "../../../dash/mpd/TemplatedUri.hpp"
|
||||
|
||||
#include <cstring>
|
||||
#include <vlc_common.h>
|
||||
|
||||
using namespace dash::mpd;
|
||||
|
||||
static const struct
|
||||
{
|
||||
const char *src;
|
||||
const char *dst;
|
||||
const char *str;
|
||||
const unsigned val;
|
||||
} dataset[] = {
|
||||
{
|
||||
"",
|
||||
"",
|
||||
nullptr,
|
||||
0,
|
||||
},
|
||||
{
|
||||
"$",
|
||||
"$",
|
||||
nullptr,
|
||||
0,
|
||||
},
|
||||
{
|
||||
"/Num$$ber.m4v",
|
||||
"/Num$ber.m4v",
|
||||
nullptr,
|
||||
0,
|
||||
},
|
||||
{
|
||||
"/$Number$.m4v",
|
||||
"/123.m4v",
|
||||
nullptr,
|
||||
123,
|
||||
},
|
||||
{
|
||||
"/$$$Number$.m4v",
|
||||
"/$456789123.m4v",
|
||||
nullptr,
|
||||
456789123,
|
||||
},
|
||||
{
|
||||
"$Number%d$",
|
||||
"123",
|
||||
nullptr,
|
||||
123,
|
||||
},
|
||||
{
|
||||
"/$Number%5d$.m4v",
|
||||
"/00001.m4v",
|
||||
nullptr,
|
||||
1,
|
||||
},
|
||||
{
|
||||
"/$Number%2d$.m4v",
|
||||
"/123456.m4v",
|
||||
nullptr,
|
||||
123456, /* Must not truncate */
|
||||
},
|
||||
{
|
||||
"/$RepresentationID$.m4v",
|
||||
"/foobar.m4v",
|
||||
"foobar",
|
||||
0,
|
||||
},
|
||||
{
|
||||
"/$RepresentationID$.m4v",
|
||||
"/$Time$.m4v",
|
||||
"$Time$",
|
||||
0,
|
||||
},
|
||||
{
|
||||
"$RepresentationID$/$Number$$Time$$$",
|
||||
"id/123123$",
|
||||
"id",
|
||||
123, /* Must not truncate */
|
||||
},
|
||||
};
|
||||
|
||||
int TemplatedUri_test()
|
||||
{
|
||||
try {
|
||||
for(size_t i=0; i<ARRAY_SIZE(dataset); i++)
|
||||
{
|
||||
std::string str = std::string(dataset[i].src);
|
||||
|
||||
std::cerr << str << std::endl;
|
||||
|
||||
std::string::size_type pos = 0;
|
||||
while(pos < str.length())
|
||||
{
|
||||
TemplatedUri::Token token;
|
||||
|
||||
if(str[pos] == '$' && TemplatedUri::IsDASHToken(str, pos, token))
|
||||
{
|
||||
std::cerr << " * token " << str.substr(pos, token.fulllength)
|
||||
<< " " << token.width << std::endl;
|
||||
|
||||
TemplatedUri::TokenReplacement replparam;
|
||||
|
||||
switch(token.type)
|
||||
{
|
||||
case TemplatedUri::Token::TOKEN_TIME:
|
||||
case TemplatedUri::Token::TOKEN_BANDWIDTH:
|
||||
case TemplatedUri::Token::TOKEN_NUMBER:
|
||||
replparam.value = dataset[i].val;
|
||||
break;
|
||||
case TemplatedUri::Token::TOKEN_REPRESENTATION:
|
||||
{
|
||||
Expect(dataset[i].str);
|
||||
replparam.str = std::string(dataset[i].str);
|
||||
break;
|
||||
}
|
||||
case TemplatedUri::Token::TOKEN_ESCAPE:
|
||||
break;
|
||||
|
||||
default:
|
||||
pos += token.fulllength;
|
||||
continue;
|
||||
}
|
||||
|
||||
std::string::size_type newlen =
|
||||
TemplatedUri::ReplaceDASHToken(str, pos, token, replparam);
|
||||
Expect(newlen != std::string::npos);
|
||||
pos += newlen;
|
||||
}
|
||||
else pos++;
|
||||
}
|
||||
|
||||
std::cerr << " -> " << str << std::endl;
|
||||
|
||||
Expect(!std::strcmp(dataset[i].dst, str.c_str()));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
/*****************************************************************************
|
||||
* test.cpp
|
||||
*****************************************************************************
|
||||
* Copyright (C) 2018-2020 VideoLabs, VideoLAN and VLC Authors
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published
|
||||
* by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||||
*****************************************************************************/
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <vlc_common.h>
|
||||
#include <vlc_plugin.h>
|
||||
#include <vlc_demux.h>
|
||||
|
||||
#include "test.hpp"
|
||||
|
||||
extern const char vlc_module_name[] = "foobar";
|
||||
|
||||
int main()
|
||||
{
|
||||
return TemplatedUri_test();
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
/*****************************************************************************
|
||||
* test.hpp
|
||||
*****************************************************************************
|
||||
* Copyright (C) 2020 VideoLabs, VideoLAN and VLC Authors
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published
|
||||
* by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||||
*****************************************************************************/
|
||||
#ifndef ADAPTIVE_TEST_H
|
||||
#define ADAPTIVE_TEST_H
|
||||
#include <exception>
|
||||
#include <iostream>
|
||||
|
||||
#define DoExpect(testcond, testcontext, testline) \
|
||||
try {\
|
||||
if (!(testcond)) \
|
||||
throw 1;\
|
||||
}\
|
||||
catch (...)\
|
||||
{\
|
||||
std::cerr << testcontext << ": failed " \
|
||||
" line " << testline << std::endl;\
|
||||
std::rethrow_exception(std::current_exception());\
|
||||
}
|
||||
|
||||
#define Expect(testcond) DoExpect((testcond), __FUNCTION__, __LINE__)
|
||||
|
||||
int TemplatedUri_test();
|
||||
|
||||
#endif
|
|
@ -32,6 +32,7 @@ check_PROGRAMS = \
|
|||
test_src_misc_keystore \
|
||||
test_modules_packetizer_hxxx \
|
||||
test_modules_keystore
|
||||
|
||||
if ENABLE_SOUT
|
||||
check_PROGRAMS += test_modules_tls
|
||||
endif
|
||||
|
|
Loading…
Reference in New Issue