Rémi Bernon (@rbernon) commented about dlls/dmime/tests/dmime.c:
+ ok(hr == DMUS_S_FREE, "got %#lx\n", hr); + + note = note60; + note.rtTime = rt; + note.mtTime = mt; + note.mtDuration = 0; + hr = IDirectMusicTool_ProcessPMsg(tool, performance, (DMUS_PMSG *)¬e); + ok(hr == DMUS_S_FREE, "got %#lx\n", hr); + + note = note60; + note.rtTime = rt; + note.mtTime = mt; + hr = IDirectMusicTool_ProcessPMsg(tool, performance, (DMUS_PMSG *)¬e); + todo_wine ok(hr == DMUS_S_REQUEUE, "got %#lx\n", hr); + ok(note.dwSize == sizeof(DMUS_NOTE_PMSG), "got %lu\n", note.dwSize); + todo_wine ok(llabs(note.rtTime - rt - 6503906) < 10, "got %I64d\n", note.rtTime - rt); This doesn't look flexible enough, and the hardcoded value isn't great. I'd do something like this to leave around 1ms of leeway.
``` todo_wine ok(fabs(note.rtTime - rt - scale_music_time(999, 120.0)) < 10000.0, "got %I64d\n", note.rtTime - rt); ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4438#note_52845