mistserver/test/meson.build
Katri 90321887cc Converted Marco's URL library unit tests to Meson
Change-Id: Ia8941968b75c7d8259c630e7e0121dc27d3a4373
2023-02-17 03:38:20 +01:00

120 lines
8.6 KiB
Meson

# Testing binaries that are not unit tests, but intended for manual use
logtest = executable('logtest', 'log.cpp', dependencies: libmist_dep)
downloadertest = executable('downloadertest', 'downloader.cpp', dependencies: libmist_dep)
urireadertest = executable('urireadertest', 'urireader.cpp', dependencies: libmist_dep)
jsontest = executable('jsontest', 'json.cpp', dependencies: libmist_dep)
resolvetest = executable('resolvetest', 'resolve.cpp', dependencies: libmist_dep)
streamstatustest = executable('streamstatustest', 'status.cpp', dependencies: libmist_dep)
websockettest = executable('websockettest', 'websocket.cpp', dependencies: libmist_dep)
# Actual unit tests
urltest = executable('urltest', 'url.cpp', dependencies: libmist_dep)
test('url test google', urltest,
env : ['Protocol=https', 'Host=google.com', 'Local=No', 'Port=443', 'Path=directory/', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['https://google.com/directory/subdirectory/..'])
test('url test schmerkel', urltest,
env : ['Protocol=http', 'Host=root', 'Local=No', 'Port=80', 'Path=home/mo','Query=', 'Fragment=', 'Username=', 'Password='],
args : ['http://root/home/schmerkel/../mo'])
test('url test relpath', urltest,
env : ['Protocol=https', 'Host=relpath.com', 'Local=No', 'Port=443', 'Path=','Query=', 'Fragment=', 'Username=', 'Password='],
args : ['https://relpath.com/rel/lang/../..'])
test('url test relpath missing dot', urltest,
env : ['Protocol=https', 'Host=relpath.com', 'Local=No', 'Port=443', 'Path=', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['https://relpath.com/rel/./..'])
test('url test relpath 1', urltest,
env : ['Protocol=https', 'Host=relpath.com', 'Local=No', 'Port=443', 'Path=','Query=', 'Fragment=', 'Username=', 'Password='],
args : ['https://relpath.com/1/..'])
test('url test relpath 123', urltest,
env : ['Protocol=https', 'Host=relpath.com', 'Local=No', 'Port=443', 'Path=','Query=', 'Fragment=', 'Username=', 'Password='],
args : ['https://relpath.com/123/..'])
test('url test relpath 2', urltest,
env : ['Protocol=https', 'Host=relpath.com', 'Local=No', 'Port=443', 'Path=','Query=', 'Fragment=', 'Username=', 'Password='],
args : ['https://relpath.com/rel/../..'])
test('url test relpath langer pad', urltest,
env : ['Protocol=https', 'Host=relpath.com', 'Local=No', 'Port=443', 'Path=langer/', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['https://relpath.com/langer/pad/..'])
test('url test authority 3000', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=3000', 'Path=path/to/some/file.cpp', 'Query=bool=true&int=3', 'Fragment=frag', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl:3000/path/to/err/../some/file.cpp?bool=true&int=3#frag'])
test('url test authority path', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=0', 'Path=path/', 'Query=', 'Fragment=', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl/path/weird/./..'])
test('url test authority path wierd', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=0', 'Path=path/weird/', 'Query=', 'Fragment=', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl/path/weird/a/..'])
test('url test authority p&at#h/', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=0', 'Path=p&at#h/', 'Query=', 'Fragment=', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl/p%26at%23h/'])
test('url test authority p at!h/', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=0', 'Path=p at!h/', 'Query=', 'Fragment=', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl/p%20at%21h/'])
# KATRI TODO Cannot test pass as env ' %27 , need escape char for meson string ''
test('url test authority !"#$%&()/', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=0', 'Path= !"#$%&()/','Query=', 'Fragment=', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl/%20%21%22%23%24%25%26%28%29/'])
test('url test authority *+,-.//', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=0', 'Path=*+,-.//', 'Query=', 'Fragment=', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl/%2A%2B%2C%2D%2E%2F/'])
test('url test authority 0123456789/', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=0', 'Path=0123456789/', 'Query=', 'Fragment=', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl/%30%31%32%33%34%35%36%37%38%39/'])
test('url test authority _;<=>?@/', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=0', 'Path=:;<=>?@/', 'Query=', 'Fragment=', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl/%3A%3B%3C%3D%3E%3F%40/'])
test('url test authority ABCDEFGHI/', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=0', 'Path=ABCDEFGHI/', 'Query=', 'Fragment=', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl/%41%42%43%44%45%46%47%48%49/'])
test('url test doe/iets', urltest,
env : ['Protocol=file', 'Host=google.com', 'Local=No', 'Port=0', 'Path=doe/iets', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['file://google.com/doe/iets'])
test('url test sub1/sub2/', urltest,
env : ['Protocol=file', 'Host=google.com', 'Local=No', 'Port=0', 'Path=sub1/sub2/', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['file://google.com/sub1/sub2/'])
test('url test sub1/sub2/ anders', urltest,
env : ['Protocol=file', 'Host=google.com', 'Local=No', 'Port=0', 'Path=sub1/sub2/www.wiki.com/anders', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['file://google.com/sub1/sub2/www.wiki.com/anders'])
test('url test sub1/sub2/ relatief', urltest,
env : ['Protocol=file', 'Host=google.com', 'Local=No', 'Port=0', 'Path=sub1/sub2/www.wiki.com/relatief/', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['file://google.com/sub1/sub2/www.wiki.com/relatief/'])
test('url test absoluut', urltest,
env : ['Protocol=file', 'Host=google.com', 'Local=No', 'Port=0', 'Path=absoluut/', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['file://google.com/absoluut/'])
test('url test absoluut relatiefFile', urltest,
env : ['Protocol=file', 'Host=google.com', 'Local=No', 'Port=0', 'Path=absoluut/relatiefFile', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['file://google.com/absoluut/relatiefFile'])
test('url test path empty', urltest,
env : ['Protocol=http', 'Host=www.wiki.com', 'Local=No', 'Port=80', 'Path=', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['http://www.wiki.com/'])
test('url test path emoticons', urltest,
env : ['Protocol=protocol', 'Host=authority.nl', 'Local=No', 'Port=0', 'Path=😋😄😡😵/', 'Query=', 'Fragment=', 'Username=uname', 'Password=pwd'],
args : ['protocol://uname:pwd@authority.nl/😋😄😡😵/'])
test('url test rtmp 1', urltest,
env : ['Protocol=https', 'Host=2001:db8::1', 'Local=No', 'Port=159', 'Path=', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['https://[2001:db8::1]:159/'])
test('url test rtpm 2', urltest,
env : ['Protocol=rtmp', 'Host=2001:db8::1', 'Local=No', 'Port=1935', 'Path=','Query=', 'Fragment=', 'Username=', 'Password='],
args : ['rtmp://[2001:db8::1]/'])
test('url test rtpms', urltest,
env : ['Protocol=rtmps', 'Host=2001:db8::1', 'Local=No', 'Port=443', 'Path=', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['rtmps://[2001:db8::1]/'])
test('url test rtpm 2', urltest,
env : ['Protocol=dtsc', 'Host=2001:db8::1', 'Local=No', 'Port=4200', 'Path=', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['dtsc://[2001:db8::1]/'])
test('url test rtsp', urltest,
env : ['Protocol=rtsp', 'Host=2001:db8::1', 'Local=No', 'Port=554', 'Path=', 'Query=', 'Fragment=', 'Username=', 'Password='],
args : ['rtsp://[2001:db8::1]/'])
dtsc_sizing_test = executable('dtsc_sizing_test', 'dtsc_sizing.cpp', dependencies: libmist_dep)
test('DTSC Sizing Test', dtsc_sizing_test)
bitwritertest = executable('bitwritertest', 'bitwriter.cpp', dependencies: libmist_dep)
test('bitWriter Test', bitwritertest)
#abst_test = executable('abst_test', 'abst_test.cpp', dependencies: libmist_dep)
#test('MP4::ABST Test', abst_test)