Index: test/win/win_multiprocess_test.cc |
diff --git a/test/win/win_multiprocess_test.cc b/test/win/win_multiprocess_test.cc |
index eaf3d66953872c4f8d5f77a708bb5bad7527efac..87916c6d8126b86bc6731394b64dc543bf4c57f6 100644 |
--- a/test/win/win_multiprocess_test.cc |
+++ b/test/win/win_multiprocess_test.cc |
@@ -21,23 +21,20 @@ namespace crashpad { |
namespace test { |
namespace { |
+template <int exit_code> |
scottmg
2015/06/25 04:13:25
exit_code -> ExitCode
erikwright (departed)
2015/06/25 14:36:02
Done.
|
class TestWinMultiprocess final : public WinMultiprocess { |
public: |
- explicit TestWinMultiprocess(unsigned int exit_code) |
- : WinMultiprocess(), exit_code_(exit_code) {} |
- |
+ TestWinMultiprocess() {} |
~TestWinMultiprocess() {} |
private: |
// WinMultiprocess will have already exercised the pipes. |
- void WinMultiprocessParent() override {} |
+ void WinMultiprocessParent() override { SetExpectedChildExitCode(exit_code); } |
void WinMultiprocessChild() override { |
- exit(exit_code_); |
+ exit(exit_code); |
} |
- unsigned int exit_code_; |
- |
DISALLOW_COPY_AND_ASSIGN(TestWinMultiprocess); |
}; |
@@ -46,16 +43,16 @@ enum class FailureType { |
kAssert, |
}; |
+template <FailureType failure_type> |
scottmg
2015/06/25 04:13:25
similar
erikwright (departed)
2015/06/25 14:36:02
In the end I thought a non-template approach might
|
class TestWinMultiprocessChildFails final : public WinMultiprocess { |
public: |
- explicit TestWinMultiprocessChildFails(FailureType failure_type) |
- : WinMultiprocess(), failure_type_(failure_type) {} |
+ TestWinMultiprocessChildFails() {} |
~TestWinMultiprocessChildFails() {} |
private: |
- void WinMultiprocessParent() override {} |
+ void WinMultiprocessParent() override { SetExpectedChildExitCode(255); } |
void WinMultiprocessChild() override { |
- switch (failure_type_) { |
+ switch (failure_type) { |
case FailureType::kExpect: |
EXPECT_FALSE(true); |
break; |
@@ -65,35 +62,24 @@ class TestWinMultiprocessChildFails final : public WinMultiprocess { |
} |
} |
- FailureType failure_type_; |
- |
DISALLOW_COPY_AND_ASSIGN(TestWinMultiprocessChildFails); |
}; |
TEST(WinMultiprocess, WinMultiprocess) { |
- TestWinMultiprocess win_multiprocess(0); |
- win_multiprocess.Run(); |
+ WinMultiprocess::Run<TestWinMultiprocess<0>>(); |
} |
TEST(WinMultiprocess, WinMultiprocessNonSuccessExitCode) { |
- TestWinMultiprocess win_multiprocess(100); |
- win_multiprocess.SetExpectedChildExitCode(100); |
- win_multiprocess.Run(); |
+ WinMultiprocess::Run<TestWinMultiprocess<100>>(); |
} |
TEST(WinMultiprocessChildFails, ChildExpectFailure) { |
- TestWinMultiprocessChildFails multiprocess_failing_child( |
- FailureType::kExpect); |
- multiprocess_failing_child.SetExpectedChildExitCode(255); |
- multiprocess_failing_child.Run(); |
+ WinMultiprocess::Run<TestWinMultiprocessChildFails<FailureType::kExpect>>(); |
} |
TEST(WinMultiprocessChildFails, ChildAssertFailure) { |
- TestWinMultiprocessChildFails multiprocess_failing_child( |
- FailureType::kAssert); |
- multiprocess_failing_child.SetExpectedChildExitCode(255); |
- multiprocess_failing_child.Run(); |
+ WinMultiprocess::Run<TestWinMultiprocessChildFails<FailureType::kAssert>>(); |
} |
} // namespace |