diff --git a/test/test_process_test.dart b/test/test_process_test.dart
index 85b3424..40e608c 100644
--- a/test/test_process_test.dart
+++ b/test/test_process_test.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'dart:async';
+import 'dart:convert';
 import 'dart:io';
 
 import 'package:path/path.dart' as p;
@@ -34,11 +35,35 @@
     });
   });
 
-  test("kill() stops the process", () async {
-    var process = await startDartProcess('while (true);');
+  group("kill() stops the process", () {
+    test("parent", () async {
+      var process = await startDartProcess('while (true);');
 
-    // Should terminate.
-    await process.kill();
+      // Should terminate.
+      await process.kill();
+    });
+
+    test("child", () async {
+      var childPath = p.join(d.sandbox, 'child.dart');
+      File(childPath).writeAsStringSync('''
+          void main() {
+            while (true);
+          }
+        ''');
+
+      var process = await startDartProcess('''
+          var process = Process.start(${json.encode(childPath)});
+          print(process.pid);
+        ''');
+
+      var pid = int.parse(await process.stdout.next);
+
+      // Should terminate.
+      await process.kill();
+
+      expect(Process.killPid(pid), isFalse,
+          reason: "Child process should no longer be running.");
+    });
   });
 
   group("stdout and stderr", () {
