xref: /qemu/tests/qtest/intel-hda-test.c (revision fbaf445a899ec763cdd99f32c733ef2d080ff8ad)
1*fbaf445aSAndreas Färber /*
2*fbaf445aSAndreas Färber  * QTest testcase for Intel HDA
3*fbaf445aSAndreas Färber  *
4*fbaf445aSAndreas Färber  * Copyright (c) 2014 SUSE LINUX Products GmbH
5*fbaf445aSAndreas Färber  *
6*fbaf445aSAndreas Färber  * This work is licensed under the terms of the GNU GPL, version 2 or later.
7*fbaf445aSAndreas Färber  * See the COPYING file in the top-level directory.
8*fbaf445aSAndreas Färber  */
9*fbaf445aSAndreas Färber 
10*fbaf445aSAndreas Färber #include <glib.h>
11*fbaf445aSAndreas Färber #include <string.h>
12*fbaf445aSAndreas Färber #include "libqtest.h"
13*fbaf445aSAndreas Färber #include "qemu/osdep.h"
14*fbaf445aSAndreas Färber 
15*fbaf445aSAndreas Färber #define HDA_ID "hda0"
16*fbaf445aSAndreas Färber #define CODEC_DEVICES " -device hda-output,bus=" HDA_ID ".0" \
17*fbaf445aSAndreas Färber                       " -device hda-micro,bus=" HDA_ID ".0" \
18*fbaf445aSAndreas Färber                       " -device hda-duplex,bus=" HDA_ID ".0"
19*fbaf445aSAndreas Färber 
20*fbaf445aSAndreas Färber /* Tests only initialization so far. TODO: Replace with functional tests */
21*fbaf445aSAndreas Färber static void ich6_test(void)
22*fbaf445aSAndreas Färber {
23*fbaf445aSAndreas Färber     qtest_start("-device intel-hda,id=" HDA_ID CODEC_DEVICES);
24*fbaf445aSAndreas Färber     qtest_end();
25*fbaf445aSAndreas Färber }
26*fbaf445aSAndreas Färber 
27*fbaf445aSAndreas Färber static void ich9_test(void)
28*fbaf445aSAndreas Färber {
29*fbaf445aSAndreas Färber     qtest_start("-machine q35 -device ich9-intel-hda,bus=pcie.0,addr=1b.0,id="
30*fbaf445aSAndreas Färber                 HDA_ID CODEC_DEVICES);
31*fbaf445aSAndreas Färber     qtest_end();
32*fbaf445aSAndreas Färber }
33*fbaf445aSAndreas Färber 
34*fbaf445aSAndreas Färber int main(int argc, char **argv)
35*fbaf445aSAndreas Färber {
36*fbaf445aSAndreas Färber     int ret;
37*fbaf445aSAndreas Färber 
38*fbaf445aSAndreas Färber     g_test_init(&argc, &argv, NULL);
39*fbaf445aSAndreas Färber     qtest_add_func("/intel-hda/ich6", ich6_test);
40*fbaf445aSAndreas Färber     qtest_add_func("/intel-hda/ich9", ich9_test);
41*fbaf445aSAndreas Färber 
42*fbaf445aSAndreas Färber     ret = g_test_run();
43*fbaf445aSAndreas Färber 
44*fbaf445aSAndreas Färber     return ret;
45*fbaf445aSAndreas Färber }
46