diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2017-02-27 23:01:16 +0900 |
---|---|---|
committer | Lorenzo Colitti <lorenzo@google.com> | 2017-02-28 15:35:47 +0900 |
commit | 849a11c9bb999115e59e03efd61d108305d2fd55 (patch) | |
tree | 676d6d4a710d26ec643737316c5347f0e22f70cf /server/IptablesBaseTest.cpp | |
parent | 1e299c63fd42f02f23547690275d4f6f9cd5fcc4 (diff) | |
download | netd-849a11c9bb999115e59e03efd61d108305d2fd55.tar.gz |
Support pretending that certain iptables commands failed.
Bug: 28362720
Test: see subsequent CL.
Change-Id: Id4db5f481bd94ae04d2a5cf7c5c97be1f000c3c9
Diffstat (limited to 'server/IptablesBaseTest.cpp')
-rw-r--r-- | server/IptablesBaseTest.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/server/IptablesBaseTest.cpp b/server/IptablesBaseTest.cpp index faa74330..f879fe67 100644 --- a/server/IptablesBaseTest.cpp +++ b/server/IptablesBaseTest.cpp @@ -33,6 +33,7 @@ IptablesBaseTest::IptablesBaseTest() { sCmds.clear(); sRestoreCmds.clear(); + sReturnValues.clear(); } int IptablesBaseTest::fake_android_fork_exec(int argc, char* argv[], int *status, bool, bool) { @@ -43,10 +44,19 @@ int IptablesBaseTest::fake_android_fork_exec(int argc, char* argv[], int *status cmd += argv[i]; } sCmds.push_back(cmd); + + int ret; + if (sReturnValues.size()) { + ret = sReturnValues.front(); + sReturnValues.pop_front(); + } else { + ret = 0; + } + if (status) { - *status = 0; + *status = ret; } - return 0; + return ret; } int IptablesBaseTest::fakeExecIptables(IptablesTarget target, ...) { @@ -169,7 +179,12 @@ void IptablesBaseTest::expectIptablesRestoreCommands(const ExpectedIptablesComma sRestoreCmds.clear(); } +void IptablesBaseTest::setReturnValues(const std::deque<int>& returnValues) { + sReturnValues = returnValues; +} + std::vector<std::string> IptablesBaseTest::sCmds = {}; IptablesBaseTest::ExpectedIptablesCommands IptablesBaseTest::sRestoreCmds = {}; std::deque<std::string> IptablesBaseTest::sPopenContents = {}; std::deque<std::string> IptablesBaseTest::sIptablesRestoreOutput = {}; +std::deque<int> IptablesBaseTest::sReturnValues = {}; |