Rémi Bernon (@rbernon) commented about dlls/dmime/tests/dmime.c:
- ok(!note.punkUser, "got %p\n", note.punkUser);
- ok(note.mtDuration == 1000, "got %ld\n", note.mtDuration);
- ok(note.wMusicValue == 60, "got %d\n", note.wMusicValue);
- ok(!note.wMeasure, "got %d\n", note.wMeasure);
- ok(!note.nOffset, "got %d\n", note.nOffset);
- ok(!note.bBeat, "got %d\n", note.bBeat);
- ok(!note.bGrid, "got %d\n", note.bGrid);
- ok(note.bVelocity == 127, "got %d\n", note.bVelocity);
- todo_wine ok(!note.bFlags, "got %#x\n", note.bFlags);
- ok(!note.bTimeRange, "got %d\n", note.bTimeRange);
- ok(!note.bDurRange, "got %d\n", note.bDurRange);
- ok(!note.bVelRange, "got %d\n", note.bVelRange);
- ok(note.bPlayModeFlags == DMUS_PLAYMODE_FIXED, "got %#x\n", note.bPlayModeFlags);
- ok(!note.bSubChordLevel, "got %d\n", note.bSubChordLevel);
- ok(note.bMidiValue == 60, "got %d\n", note.bMidiValue);
- ok(!note.cTranspose, "got %d\n", note.cTranspose);
You could use `check_dmus_note_pmsg` here, with a few changes let it check bFlags and to note60 initializer. I think it'd make adding more checks easier. I'd only leave the exact time checks separately as that helper doesn't validate them very strictly.
In particular, you could check that `nOffset` has no effect on the new times, and that a very small `mtDuration` still returns `DMUS_S_REQUEUE` (and you should then notice that the -1 duration offset isn't always there).