#include <aul_cmd.h>
#include "launch.h"
-#include "mock/socket_mock.h"
+#include "mock/dbus_mock.h"
#include "mock/mock_hook.h"
-#include "mock/test_fixture.h"
#include "mock/socket_mock.h"
+#include "mock/test_fixture.h"
using ::testing::_;
using ::testing::DoAll;
namespace {
-class Mocks : virtual public ::testing::NiceMock<SocketMock> {};
+class Mocks : virtual public ::testing::NiceMock<SocketMock>,
+ virtual public ::testing::NiceMock<DbusMock> {};
} // namespace
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
}));
EXPECT_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags)
+ -> ssize_t {
int ret = 0;
memcpy(buf, &ret, sizeof(int));
return sizeof(int);
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
}));
EXPECT_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags)
+ -> ssize_t {
int ret = 0;
memcpy(buf, &ret, sizeof(int));
return sizeof(int);
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
}));
EXPECT_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags)
+ -> ssize_t {
int ret = 0;
memcpy(buf, &ret, sizeof(int));
return sizeof(int);
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
}));
EXPECT_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags)
+ -> ssize_t {
int ret = 0;
memcpy(buf, &ret, sizeof(int));
return sizeof(int);
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
}));
EXPECT_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags)
+ -> ssize_t {
int ret = 0;
memcpy(buf, &ret, sizeof(int));
return sizeof(int);
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
}));
EXPECT_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags)
+ -> ssize_t {
int ret = 1;
memcpy(buf, &ret, sizeof(int));
return sizeof(int);
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
}));
EXPECT_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags)
+ -> ssize_t {
int ret = 0;
memcpy(buf, &ret, sizeof(int));
return sizeof(int);
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
.Times(1);
EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
.Times(1)
- .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags) -> ssize_t {
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
cmd = header->cmd;
return n;
EXPECT_EQ(ret, AUL_R_OK);
EXPECT_EQ(cmd, APP_TERM_BGAPP_BY_PID);
}
+
+TEST_F(LaunchTest, aul_terminate_pid_without_restart) {
+ int cmd = -1;
+ EXPECT_CALL(GetMock<SocketMock>(), socket(_, _, _))
+ .Times(1);
+ EXPECT_CALL(GetMock<SocketMock>(), connect(_, _, _))
+ .Times(1);
+ EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
+ .Times(1)
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
+ const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
+ cmd = header->cmd;
+ return n;
+ }));
+ EXPECT_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
+ .Times(1)
+ .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags) -> ssize_t {
+ int ret = 0;
+ memcpy(buf, &ret, sizeof(int));
+ return sizeof(int);
+ }));
+
+ int ret = aul_terminate_pid_without_restart(100);
+ EXPECT_EQ(ret, AUL_R_OK);
+ EXPECT_EQ(cmd, APP_TERM_BY_PID_WITHOUT_RESTART);
+}
+
+TEST_F(LaunchTest, aul_terminate_app) {
+ int cmd = -1;
+ EXPECT_CALL(GetMock<SocketMock>(), socket(_, _, _))
+ .Times(1);
+ EXPECT_CALL(GetMock<SocketMock>(), connect(_, _, _))
+ .Times(1);
+ EXPECT_CALL(GetMock<SocketMock>(), send(_, _, _, _))
+ .Times(1)
+ .WillOnce(Invoke([&](int fd, const void* buf, size_t n, int flags)
+ -> ssize_t {
+ const app_pkt_t* header = reinterpret_cast<const app_pkt_t*>(buf);
+ cmd = header->cmd;
+ return n;
+ }));
+ EXPECT_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
+ .Times(1)
+ .WillOnce(Invoke([](int fd, void* buf, size_t n, int flags) -> ssize_t {
+ int ret = 0;
+ memcpy(buf, &ret, sizeof(int));
+ return sizeof(int);
+ }));
+
+ int ret = aul_terminate_app("test-app");
+ EXPECT_EQ(ret, AUL_R_OK);
+ EXPECT_EQ(cmd, APP_TERMINATE);
+}
+
+TEST_F(LaunchTest, aul_is_tep_mount_dbus_done) {
+ EXPECT_CALL(GetMock<DbusMock>(),
+ g_dbus_connection_send_message_with_reply_sync(_, _, _, _, _, _, _))
+ .Times(1);
+
+ std::unique_ptr<GVariant, decltype(g_variant_unref)*> v_auto(
+ g_variant_new("(i)", 1), g_variant_unref);
+ EXPECT_CALL(GetMock<DbusMock>(), g_dbus_message_get_body(_))
+ .Times(1)
+ .WillOnce(Invoke([&](GDBusMessage* arg0) -> GVariant* {
+ return v_auto.get();
+ }));
+
+ int ret = aul_is_tep_mount_dbus_done("/tmp/test.tep");
+ EXPECT_EQ(ret, 1);
+}
+
+TEST_F(LaunchTest, aul_check_tep_mount) {
+ EXPECT_CALL(GetMock<DbusMock>(),
+ g_dbus_connection_send_message_with_reply_sync(_, _, _, _, _, _, _))
+ .Times(1);
+
+ std::unique_ptr<GVariant, decltype(g_variant_unref)*> v_auto(
+ g_variant_new("(i)", 1), g_variant_unref);
+ EXPECT_CALL(GetMock<DbusMock>(), g_dbus_message_get_body(_))
+ .Times(1)
+ .WillOnce(Invoke([&](GDBusMessage* arg0) -> GVariant* {
+ return v_auto.get();
+ }));
+
+ int ret = aul_check_tep_mount("/tmp/test.tep");
+ EXPECT_EQ(ret, AUL_R_OK);
+}