summaryrefslogtreecommitdiff
path: root/cras/src/tests/dsp_ini_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cras/src/tests/dsp_ini_unittest.cc')
-rw-r--r--cras/src/tests/dsp_ini_unittest.cc308
1 files changed, 0 insertions, 308 deletions
diff --git a/cras/src/tests/dsp_ini_unittest.cc b/cras/src/tests/dsp_ini_unittest.cc
deleted file mode 100644
index ee187906..00000000
--- a/cras/src/tests/dsp_ini_unittest.cc
+++ /dev/null
@@ -1,308 +0,0 @@
-// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <gtest/gtest.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "cras_dsp_ini.h"
-
-#define FILENAME_TEMPLATE "DspIniTest.XXXXXX"
-
-namespace {
-
-class DspIniTestSuite : public testing::Test {
- protected:
- virtual void SetUp() {
- strcpy(filename, FILENAME_TEMPLATE);
- int fd = mkstemp(filename);
- fp = fdopen(fd, "w");
- }
-
- virtual void TearDown() {
- CloseFile();
- unlink(filename);
- }
-
- virtual void CloseFile() {
- if (fp) {
- fclose(fp);
- fp = NULL;
- }
- }
-
- char filename[sizeof(FILENAME_TEMPLATE) + 1];
- FILE* fp;
-};
-
-TEST_F(DspIniTestSuite, EmptyIni) {
- struct ini* ini = cras_dsp_ini_create(filename);
- EXPECT_EQ(0, ARRAY_COUNT(&ini->plugins));
- EXPECT_EQ(0, ARRAY_COUNT(&ini->flows));
- cras_dsp_ini_free(ini);
-}
-
-TEST_F(DspIniTestSuite, NoLibraryOrLabel) {
- fprintf(fp, "[Test]\n");
- CloseFile();
-
- struct ini* ini = cras_dsp_ini_create(filename);
- /* NULL because a plugin doesn't have library or label */
- EXPECT_EQ(NULL, ini);
-}
-
-TEST_F(DspIniTestSuite, OneSimplePlugin) {
- fprintf(fp, "[Test]\n");
- fprintf(fp, "library=foo.so\n");
- fprintf(fp, "label=bar\n");
- fprintf(fp, "disable=\"#f\"\n");
- CloseFile();
-
- struct ini* ini = cras_dsp_ini_create(filename);
- EXPECT_EQ(1, ARRAY_COUNT(&ini->plugins));
- EXPECT_EQ(0, ARRAY_COUNT(&ini->flows));
-
- struct plugin* plugin = ARRAY_ELEMENT(&ini->plugins, 0);
- EXPECT_STREQ("test", plugin->title);
- EXPECT_STREQ("foo.so", plugin->library);
- EXPECT_STREQ("bar", plugin->label);
- EXPECT_TRUE(plugin->disable_expr);
- EXPECT_EQ(0, ARRAY_COUNT(&plugin->ports));
-
- cras_dsp_ini_free(ini);
-}
-
-TEST_F(DspIniTestSuite, BuiltinPlugin) {
- fprintf(fp, "[foo]\n");
- fprintf(fp, "library=builtin\n");
- fprintf(fp, "label=source\n");
- fprintf(fp, "purpose=playback\n");
- fprintf(fp, "[bar]\n");
- fprintf(fp, "library=builtin\n");
- fprintf(fp, "label=sink\n");
- fprintf(fp, "purpose=capture\n");
- CloseFile();
-
- struct ini* ini = cras_dsp_ini_create(filename);
- EXPECT_EQ(2, ARRAY_COUNT(&ini->plugins));
- EXPECT_EQ(0, ARRAY_COUNT(&ini->flows));
- EXPECT_STREQ(ARRAY_ELEMENT(&ini->plugins, 0)->purpose, "playback");
- EXPECT_STREQ(ARRAY_ELEMENT(&ini->plugins, 1)->purpose, "capture");
- cras_dsp_ini_free(ini);
-}
-
-TEST_F(DspIniTestSuite, Ports) {
- fprintf(fp, "[foo]\n");
- fprintf(fp, "library=bar\n");
- fprintf(fp, "label=baz\n");
- fprintf(fp, "input_0=10\n");
- CloseFile();
-
- struct ini* ini = cras_dsp_ini_create(filename);
- EXPECT_EQ(1, ARRAY_COUNT(&ini->plugins));
- EXPECT_EQ(0, ARRAY_COUNT(&ini->flows));
- struct plugin* plugin = ARRAY_ELEMENT(&ini->plugins, 0);
- EXPECT_EQ(1, ARRAY_COUNT(&plugin->ports));
- struct port* port = ARRAY_ELEMENT(&plugin->ports, 0);
- EXPECT_EQ(PORT_INPUT, port->direction);
- EXPECT_EQ(PORT_CONTROL, port->type);
- EXPECT_EQ(INVALID_FLOW_ID, port->flow_id);
- EXPECT_EQ(10, port->init_value);
- cras_dsp_ini_free(ini);
-}
-
-TEST_F(DspIniTestSuite, Flows) {
- fprintf(fp, "[foo]\n");
- fprintf(fp, "library=foo\n");
- fprintf(fp, "label=foo\n");
- fprintf(fp, "output_0=<control>\n");
- fprintf(fp, "output_1={audio}\n");
- fprintf(fp, "[bar]\n");
- fprintf(fp, "library=bar\n");
- fprintf(fp, "label=bar\n");
- fprintf(fp, "input_0={audio}\n");
- fprintf(fp, "input_1=<control>\n");
-
- CloseFile();
-
- struct ini* ini = cras_dsp_ini_create(filename);
- EXPECT_EQ(2, ARRAY_COUNT(&ini->plugins));
- struct plugin* foo = ARRAY_ELEMENT(&ini->plugins, 0);
- struct plugin* bar = ARRAY_ELEMENT(&ini->plugins, 1);
- EXPECT_EQ(2, ARRAY_COUNT(&foo->ports));
- EXPECT_EQ(2, ARRAY_COUNT(&bar->ports));
-
- struct port* foo0 = ARRAY_ELEMENT(&foo->ports, 0);
- struct port* foo1 = ARRAY_ELEMENT(&foo->ports, 1);
- EXPECT_EQ(PORT_OUTPUT, foo0->direction);
- EXPECT_EQ(PORT_CONTROL, foo0->type);
- EXPECT_EQ(PORT_OUTPUT, foo1->direction);
- EXPECT_EQ(PORT_AUDIO, foo1->type);
- EXPECT_EQ(0, foo0->flow_id);
- EXPECT_EQ(1, foo1->flow_id);
-
- struct port* bar0 = ARRAY_ELEMENT(&bar->ports, 0);
- struct port* bar1 = ARRAY_ELEMENT(&bar->ports, 1);
- EXPECT_EQ(PORT_INPUT, bar0->direction);
- EXPECT_EQ(PORT_AUDIO, bar0->type);
- EXPECT_EQ(PORT_INPUT, bar1->direction);
- EXPECT_EQ(PORT_CONTROL, bar1->type);
- EXPECT_EQ(1, bar0->flow_id);
- EXPECT_EQ(0, bar1->flow_id);
-
- EXPECT_EQ(2, ARRAY_COUNT(&ini->flows));
- struct flow* flow0 = ARRAY_ELEMENT(&ini->flows, 0);
- struct flow* flow1 = ARRAY_ELEMENT(&ini->flows, 1);
-
- EXPECT_EQ(PORT_CONTROL, flow0->type);
- EXPECT_STREQ("<control>", flow0->name);
-
- EXPECT_EQ(PORT_AUDIO, flow1->type);
- EXPECT_STREQ("{audio}", flow1->name);
-
- EXPECT_EQ(flow0->from, foo);
- EXPECT_EQ(flow0->to, bar);
- EXPECT_EQ(flow0->from_port, 0);
- EXPECT_EQ(flow0->to_port, 1);
-
- EXPECT_EQ(flow1->from, foo);
- EXPECT_EQ(flow1->to, bar);
- EXPECT_EQ(flow1->from_port, 1);
- EXPECT_EQ(flow1->to_port, 0);
-
- cras_dsp_ini_free(ini);
-}
-
-TEST_F(DspIniTestSuite, TwoChannelWithSwap) {
- /*
- * Stated in ini:
- *
- * m0 ==(a0, a1)== m1 ==(b0, b1)== m2
- *
- * After inserting swap_lr plugin:
- *
- * m0 ==(a0, a1)== m1 ==(b0, b1)== m_swap_lr ==(swap_lr_0, swap_lr_1)== m2
- *
- */
-
- const char* content =
- "[M0]\n"
- "library=builtin\n"
- "label=source\n"
- "purpose=playback\n"
- "output_0={a0}\n"
- "output_1={a1}\n"
- "[M1]\n"
- "library=builtin\n"
- "label=foo\n"
- "purpose=playback\n"
- "input_0={a0}\n"
- "input_1={a1}\n"
- "output_2={b0}\n"
- "output_3={b1}\n"
- "[M2]\n"
- "library=builtin\n"
- "label=sink\n"
- "purpose=playback\n"
- "input_0={b0}\n"
- "input_1={b1}\n";
- fprintf(fp, "%s", content);
- CloseFile();
-
- struct ini* ini = cras_dsp_ini_create(filename);
-
- /* 3 plugins and 1 swap_lr plugin. */
- EXPECT_EQ(4, ARRAY_COUNT(&ini->plugins));
-
- struct plugin* m0 = ARRAY_ELEMENT(&ini->plugins, 0);
- struct plugin* m1 = ARRAY_ELEMENT(&ini->plugins, 1);
- struct plugin* m2 = ARRAY_ELEMENT(&ini->plugins, 2);
- struct plugin* m_swap_lr = ARRAY_ELEMENT(&ini->plugins, 3);
-
- EXPECT_EQ(2, ARRAY_COUNT(&m0->ports));
- EXPECT_EQ(4, ARRAY_COUNT(&m1->ports));
- EXPECT_EQ(4, ARRAY_COUNT(&m_swap_lr->ports));
- EXPECT_EQ(2, ARRAY_COUNT(&m2->ports));
-
- struct port* m0_0 = ARRAY_ELEMENT(&m0->ports, 0);
- struct port* m0_1 = ARRAY_ELEMENT(&m0->ports, 1);
- struct port* m1_0 = ARRAY_ELEMENT(&m1->ports, 0);
- struct port* m1_1 = ARRAY_ELEMENT(&m1->ports, 1);
- struct port* m1_2 = ARRAY_ELEMENT(&m1->ports, 2);
- struct port* m1_3 = ARRAY_ELEMENT(&m1->ports, 3);
- struct port* m_swap_lr_0 = ARRAY_ELEMENT(&m_swap_lr->ports, 0);
- struct port* m_swap_lr_1 = ARRAY_ELEMENT(&m_swap_lr->ports, 1);
- struct port* m_swap_lr_2 = ARRAY_ELEMENT(&m_swap_lr->ports, 2);
- struct port* m_swap_lr_3 = ARRAY_ELEMENT(&m_swap_lr->ports, 3);
- struct port* m2_0 = ARRAY_ELEMENT(&m2->ports, 0);
- struct port* m2_1 = ARRAY_ELEMENT(&m2->ports, 1);
-
- /* flow flow_id from port to port
- * ------------------------------------------------------------
- * a0 0 m0_0 m1_0
- * a1 1 m0_1 m1_1
- * b0 2 m1_2 m_swap_lr_0
- * b1 3 m1_3 m_swap_lr_1
- * swap_lr_0 4 m_swap_lr_2 m2_0
- * swap_lr_1 5 m_swap_lr_3 m2_1
- */
- EXPECT_EQ(0, m0_0->flow_id);
- EXPECT_EQ(1, m0_1->flow_id);
- EXPECT_EQ(0, m1_0->flow_id);
- EXPECT_EQ(1, m1_1->flow_id);
- EXPECT_EQ(2, m1_2->flow_id);
- EXPECT_EQ(3, m1_3->flow_id);
- EXPECT_EQ(2, m_swap_lr_0->flow_id);
- EXPECT_EQ(3, m_swap_lr_1->flow_id);
- EXPECT_EQ(4, m_swap_lr_2->flow_id);
- EXPECT_EQ(5, m_swap_lr_3->flow_id);
- EXPECT_EQ(4, m2_0->flow_id);
- EXPECT_EQ(5, m2_1->flow_id);
-
- struct flow* flow_a0 = ARRAY_ELEMENT(&ini->flows, 0);
- struct flow* flow_a1 = ARRAY_ELEMENT(&ini->flows, 1);
- struct flow* flow_b0 = ARRAY_ELEMENT(&ini->flows, 2);
- struct flow* flow_b1 = ARRAY_ELEMENT(&ini->flows, 3);
- struct flow* flow_swap_lr_0 = ARRAY_ELEMENT(&ini->flows, 4);
- struct flow* flow_swap_lr_1 = ARRAY_ELEMENT(&ini->flows, 5);
-
- EXPECT_EQ(flow_a0->from, m0);
- EXPECT_EQ(flow_a0->from_port, 0);
- EXPECT_EQ(flow_a0->to, m1);
- EXPECT_EQ(flow_a0->to_port, 0);
-
- EXPECT_EQ(flow_a1->from, m0);
- EXPECT_EQ(flow_a1->from_port, 1);
- EXPECT_EQ(flow_a1->to, m1);
- EXPECT_EQ(flow_a1->to_port, 1);
-
- EXPECT_EQ(flow_b0->from, m1);
- EXPECT_EQ(flow_b0->from_port, 2);
- EXPECT_EQ(flow_b0->to, m_swap_lr);
- EXPECT_EQ(flow_b0->to_port, 0);
-
- EXPECT_EQ(flow_b1->from, m1);
- EXPECT_EQ(flow_b1->from_port, 3);
- EXPECT_EQ(flow_b1->to, m_swap_lr);
- EXPECT_EQ(flow_b1->to_port, 1);
-
- EXPECT_EQ(flow_swap_lr_0->from, m_swap_lr);
- EXPECT_EQ(flow_swap_lr_0->from_port, 2);
- EXPECT_EQ(flow_swap_lr_0->to, m2);
- EXPECT_EQ(flow_swap_lr_0->to_port, 0);
-
- EXPECT_EQ(flow_swap_lr_1->from, m_swap_lr);
- EXPECT_EQ(flow_swap_lr_1->from_port, 3);
- EXPECT_EQ(flow_swap_lr_1->to, m2);
- EXPECT_EQ(flow_swap_lr_1->to_port, 1);
-
- cras_dsp_ini_free(ini);
-}
-
-} // namespace
-
-int main(int argc, char** argv) {
- ::testing::InitGoogleTest(&argc, argv);
- return RUN_ALL_TESTS();
-}