mstask/tests: Conformance test for (Set|Get)MaxRunTime.
diff --git a/dlls/mstask/tests/task.c b/dlls/mstask/tests/task.c
index 749eb55..b1f194c 100644
--- a/dlls/mstask/tests/task.c
+++ b/dlls/mstask/tests/task.c
@@ -370,6 +370,63 @@
     return;
 }
 
+static void test_SetMaxRunTime_GetMaxRunTime(void)
+{
+    BOOL setup;
+    HRESULT hres;
+    DWORD max_run_time;
+
+    setup = setup_task();
+    ok(setup, "Failed to setup test_task\n");
+    if (!setup)
+    {
+        skip("Failed to create task.  Skipping tests.\n");
+        return;
+    }
+
+    /* Default time is 3 days:
+     * 3 days * 24 hours * 60 minutes * 60 seconds * 1000 ms = 259200000 */
+    max_run_time = 0;
+    hres = ITask_GetMaxRunTime(test_task, &max_run_time);
+    todo_wine ok(hres == S_OK, "Failed to get max runtime: 0x%08x\n", hres);
+    todo_wine ok(max_run_time == 259200000, "Expected 259200000: %d\n", max_run_time);
+
+    /* Basic set test */
+    max_run_time = 0;
+    hres = ITask_SetMaxRunTime(test_task, 1234);
+    todo_wine ok(hres == S_OK, "Failed to set max runtime: 0x%08x\n", hres);
+    hres = ITask_GetMaxRunTime(test_task, &max_run_time);
+    todo_wine ok(hres == S_OK, "Failed to get max runtime: 0x%08x\n", hres);
+    todo_wine ok(max_run_time == 1234, "Expected 1234: %d\n", max_run_time);
+
+    /* Verify that time can be set to zero */
+    max_run_time = 1;
+    hres = ITask_SetMaxRunTime(test_task, 0);
+    todo_wine ok(hres == S_OK, "Failed to set max runtime: 0x%08x\n", hres);
+    hres = ITask_GetMaxRunTime(test_task, &max_run_time);
+    todo_wine ok(hres == S_OK, "Failed to get max runtime: 0x%08x\n", hres);
+    todo_wine ok(max_run_time == 0, "Expected 0: %d\n", max_run_time);
+
+    /* Check resolution by setting time to one */
+    max_run_time = 0;
+    hres = ITask_SetMaxRunTime(test_task, 1);
+    todo_wine ok(hres == S_OK, "Failed to set max runtime: 0x%08x\n", hres);
+    hres = ITask_GetMaxRunTime(test_task, &max_run_time);
+    todo_wine ok(hres == S_OK, "Failed to get max runtime: 0x%08x\n", hres);
+    todo_wine ok(max_run_time == 1, "Expected 1: %d\n", max_run_time);
+
+    /* Verify that time can be set to INFINITE */
+    max_run_time = 0;
+    hres = ITask_SetMaxRunTime(test_task, INFINITE);
+    todo_wine ok(hres == S_OK, "Failed to set max runtime: 0x%08x\n", hres);
+    hres = ITask_GetMaxRunTime(test_task, &max_run_time);
+    todo_wine ok(hres == S_OK, "Failed to get max runtime: 0x%08x\n", hres);
+    todo_wine ok(max_run_time == INFINITE, "Expected INFINITE: %d\n", max_run_time);
+
+    cleanup_task();
+    return;
+}
+
 START_TEST(task)
 {
     CoInitialize(NULL);
@@ -377,5 +434,6 @@
     test_CreateTrigger();
     test_SetParameters_GetParameters();
     test_SetComment_GetComment();
+    test_SetMaxRunTime_GetMaxRunTime();
     CoUninitialize();
 }