Michael Stefaniuc : dmime/tests: Add more GetTrack() tests.

Alexandre Julliard julliard at winehq.org
Mon Dec 9 16:57:36 CST 2019


Module: wine
Branch: master
Commit: 4649f2f1a0d739a08bb245f2b43d971397150072
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=4649f2f1a0d739a08bb245f2b43d971397150072

Author: Michael Stefaniuc <mstefani at winehq.org>
Date:   Sun Dec  8 18:53:51 2019 +0100

dmime/tests: Add more GetTrack() tests.

Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dmime/tests/dmime.c | 38 ++++++++++++++++++++++++++++++++------
 1 file changed, 32 insertions(+), 6 deletions(-)

diff --git a/dlls/dmime/tests/dmime.c b/dlls/dmime/tests/dmime.c
index e8fa6a596d..2e0626cde4 100644
--- a/dlls/dmime/tests/dmime.c
+++ b/dlls/dmime/tests/dmime.c
@@ -543,14 +543,17 @@ static void _add_track(IDirectMusicSegment8 *seg, REFCLSID class, const char *na
 #define add_track(seg, class, group) _add_track(seg, &CLSID_DirectMusic ## class, #class, group)
 
 static void _expect_track(IDirectMusicSegment8 *seg, REFCLSID expect, const char *name, DWORD group,
-        DWORD index)
+        DWORD index, BOOL ignore_guid)
 {
     IDirectMusicTrack *track;
     IPersistStream *ps;
     CLSID class;
     HRESULT hr;
 
-    hr = IDirectMusicSegment8_GetTrack(seg, &GUID_NULL, group, index, &track);
+    if (ignore_guid)
+        hr = IDirectMusicSegment8_GetTrack(seg, &GUID_NULL, group, index, &track);
+    else
+        hr = IDirectMusicSegment8_GetTrack(seg, expect, group, index, &track);
     if (!expect) {
         ok(hr == DMUS_E_NOT_FOUND, "GetTrack failed: %08x, expected DMUS_E_NOT_FOUND\n", hr);
         return;
@@ -568,9 +571,12 @@ static void _expect_track(IDirectMusicSegment8 *seg, REFCLSID expect, const char
     IDirectMusicTrack_Release(track);
 }
 
-#define expect_track(seg, class, group, index) _expect_track(seg, &CLSID_DirectMusic ## class, #class, group, index)
+#define expect_track(seg, class, group, index) \
+    _expect_track(seg, &CLSID_DirectMusic ## class, #class, group, index, TRUE)
+#define expect_guid_track(seg, class, group, index) \
+    _expect_track(seg, &CLSID_DirectMusic ## class, #class, group, index, FALSE)
 
-static void test_track_identify(void)
+static void test_gettrack(void)
 {
     IDirectMusicSegment8 *seg;
     IDirectMusicTrack *track;
@@ -586,7 +592,9 @@ static void test_track_identify(void)
     add_track(seg, SegmentTriggerTrack, 0x2); /* idx 1 group 2 */
     add_track(seg, SeqTrack, 0x1);            /* idx 2 group 1 */
     add_track(seg, TempoTrack, 0x7);          /* idx 3 group 1, idx 2 group 2, idx 0 group 3 */
+    add_track(seg, WaveTrack, 0xffffffff);    /* idx 4 group 1, idx 3 group 2, idx 1 group 3 */
 
+    /* Ignore GUID in GetTrack */
     hr = IDirectMusicSegment8_GetTrack(seg, &GUID_NULL, 0, 0, &track);
     ok(hr == DMUS_E_NOT_FOUND, "GetTrack failed: %08x, expected DMUS_E_NOT_FOUND\n", hr);
 
@@ -594,12 +602,30 @@ static void test_track_identify(void)
     expect_track(seg, ParamControlTrack, 0x1, 1);
     expect_track(seg, SeqTrack, 0x1, 2);
     expect_track(seg, TempoTrack, 0x1, 3);
-    _expect_track(seg, NULL, "", 0x1, 4);
+    expect_track(seg, WaveTrack, 0x1, 4);
+    _expect_track(seg, NULL, "", 0x1, 5, TRUE);
+    _expect_track(seg, NULL, "", 0x1, DMUS_SEG_ANYTRACK, TRUE);
     expect_track(seg, ParamControlTrack, 0x2, 0);
+    expect_track(seg, WaveTrack, 0x80000000, 0);
     expect_track(seg, SegmentTriggerTrack, 0x3, 2);  /* groups 1+2 combined index */
     expect_track(seg, SeqTrack, 0x3, 3);             /* groups 1+2 combined index */
     expect_track(seg, TempoTrack, 0x7, 4);           /* groups 1+2+3 combined index */
     expect_track(seg, TempoTrack, 0xffffffff, 4);    /* all groups combined index */
+    _expect_track(seg, NULL, "", 0xffffffff, DMUS_SEG_ANYTRACK, TRUE);
+
+    /* Use the GUID in GetTrack */
+    hr = IDirectMusicSegment8_GetTrack(seg, &CLSID_DirectMusicLyricsTrack, 0, 0, &track);
+    ok(hr == DMUS_E_NOT_FOUND, "GetTrack failed: %08x, expected DMUS_E_NOT_FOUND\n", hr);
+
+    expect_guid_track(seg, LyricsTrack, 0x1, 0);
+    expect_guid_track(seg, ParamControlTrack, 0x1, 0);
+    expect_guid_track(seg, SeqTrack, 0x1, 0);
+    expect_guid_track(seg, TempoTrack, 0x1, 0);
+    expect_guid_track(seg, ParamControlTrack, 0x2, 0);
+    expect_guid_track(seg, SegmentTriggerTrack, 0x3, 0);
+    expect_guid_track(seg, SeqTrack, 0x3, 0);
+    expect_guid_track(seg, TempoTrack, 0x7, 0);
+    expect_guid_track(seg, TempoTrack, 0xffffffff, 0);
 
     IDirectMusicSegment8_Release(seg);
 }
@@ -1090,7 +1116,7 @@ START_TEST(dmime)
     test_audiopathconfig();
     test_graph();
     test_segment();
-    test_track_identify();
+    test_gettrack();
     test_track();
     test_parsedescriptor();
 




More information about the wine-cvs mailing list