Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
f85f25ba
Commit
f85f25ba
authored
8 years ago
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test: add AudioFormat unit test
parent
10a2c179
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
144 additions
and
0 deletions
+144
-0
Makefile.am
Makefile.am
+1
-0
TestAudioFormat.cxx
test/TestAudioFormat.cxx
+102
-0
TestAudioFormat.hxx
test/TestAudioFormat.hxx
+39
-0
test_pcm_main.cxx
test/test_pcm_main.cxx
+2
-0
No files found.
Makefile.am
View file @
f85f25ba
...
...
@@ -2228,6 +2228,7 @@ test_test_icy_parser_LDADD = \
endif
test_test_pcm_SOURCES
=
\
test
/TestAudioFormat.cxx
test
/TestAudioFormat.hxx
\
test
/test_pcm_util.hxx
\
test
/test_pcm_dither.cxx
\
test
/test_pcm_pack.cxx
\
...
...
This diff is collapsed.
Click to expand it.
test/TestAudioFormat.cxx
0 → 100644
View file @
f85f25ba
/*
* Copyright 2003-2017 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "config.h"
#include "TestAudioFormat.hxx"
#include "AudioFormat.hxx"
#include "AudioParser.hxx"
#include <cppunit/TestAssert.h>
#include <string.h>
namespace
CppUnit
{
template
<>
struct
assertion_traits
<
const
char
*>
{
static
bool
equal
(
const
char
*
x
,
const
char
*
y
)
{
return
strcmp
(
x
,
y
)
==
0
;
}
static
std
::
string
toString
(
const
char
*
x
)
{
return
std
::
string
(
"
\"
"
)
+
x
+
"
\"
"
;
}
};
template
<>
struct
assertion_traits
<
AudioFormat
>
{
static
bool
equal
(
AudioFormat
x
,
AudioFormat
y
)
{
return
x
==
y
;
}
static
std
::
string
toString
(
AudioFormat
x
)
{
struct
audio_format_string
s
;
return
audio_format_to_string
(
x
,
&
s
);
}
};
}
struct
AudioFormatStringTest
{
AudioFormat
af
;
const
char
*
s
;
};
static
constexpr
AudioFormatStringTest
af_string_tests
[]
=
{
{
AudioFormat
(
44100
,
SampleFormat
::
S8
,
1
),
"44100:8:1"
},
{
AudioFormat
(
44100
,
SampleFormat
::
S16
,
2
),
"44100:16:2"
},
{
AudioFormat
(
48000
,
SampleFormat
::
S24_P32
,
6
),
"48000:24:6"
},
{
AudioFormat
(
192000
,
SampleFormat
::
FLOAT
,
2
),
"192000:f:2"
},
{
AudioFormat
(
352800
,
SampleFormat
::
DSD
,
2
),
"352800:dsd:2"
},
};
static
constexpr
AudioFormatStringTest
af_mask_tests
[]
=
{
{
AudioFormat
(
44100
,
SampleFormat
::
UNDEFINED
,
1
),
"44100:*:1"
},
{
AudioFormat
(
44100
,
SampleFormat
::
S16
,
0
),
"44100:16:*"
},
{
AudioFormat
(
0
,
SampleFormat
::
S24_P32
,
6
),
"*:24:6"
},
{
AudioFormat
::
Undefined
(),
"*:*:*"
},
};
void
AudioFormatTest
::
TestToString
()
{
struct
audio_format_string
s
;
for
(
const
auto
&
i
:
af_string_tests
)
CPPUNIT_ASSERT_EQUAL
(
i
.
s
,
audio_format_to_string
(
i
.
af
,
&
s
));
}
void
AudioFormatTest
::
TestParse
()
{
for
(
const
auto
&
i
:
af_string_tests
)
{
CPPUNIT_ASSERT_EQUAL
(
i
.
af
,
ParseAudioFormat
(
i
.
s
,
false
));
CPPUNIT_ASSERT_EQUAL
(
i
.
af
,
ParseAudioFormat
(
i
.
s
,
true
));
}
for
(
const
auto
&
i
:
af_mask_tests
)
CPPUNIT_ASSERT_EQUAL
(
i
.
af
,
ParseAudioFormat
(
i
.
s
,
true
));
}
This diff is collapsed.
Click to expand it.
test/TestAudioFormat.hxx
0 → 100644
View file @
f85f25ba
/*
* Copyright 2003-2017 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef MPD_TEST_AUDIO_FORMAT_HXX
#define MPD_TEST_AUDIO_FORMAT_HXX
#include "check.h"
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
class
AudioFormatTest
:
public
CppUnit
::
TestFixture
{
CPPUNIT_TEST_SUITE
(
AudioFormatTest
);
CPPUNIT_TEST
(
TestToString
);
CPPUNIT_TEST
(
TestParse
);
CPPUNIT_TEST_SUITE_END
();
public
:
void
TestToString
();
void
TestParse
();
};
#endif
This diff is collapsed.
Click to expand it.
test/test_pcm_main.cxx
View file @
f85f25ba
...
...
@@ -19,6 +19,7 @@
#include "config.h"
#include "test_pcm_all.hxx"
#include "TestAudioFormat.hxx"
#include "Compiler.h"
#include <cppunit/extensions/TestFactoryRegistry.h>
...
...
@@ -34,6 +35,7 @@ CPPUNIT_TEST_SUITE_REGISTRATION(PcmFormatTest);
CPPUNIT_TEST_SUITE_REGISTRATION
(
PcmMixTest
);
CPPUNIT_TEST_SUITE_REGISTRATION
(
PcmInterleaveTest
);
CPPUNIT_TEST_SUITE_REGISTRATION
(
PcmExportTest
);
CPPUNIT_TEST_SUITE_REGISTRATION
(
AudioFormatTest
);
int
main
(
gcc_unused
int
argc
,
gcc_unused
char
**
argv
)
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment