return RunSubprocessAndKill(args, delay);
}
+SmokeTestHelperRunner::Result SmokeTestHelperRunner::InstallPkgsWithSubprocess(
+ const std::vector<bf::path>& paths, uid_t uid) const {
+ std::vector<std::string> args;
+ args.emplace_back("-i");
+ for (const bf::path& p : paths)
+ args.emplace_back(p.string());
+ args.emplace_back("-u");
+ args.emplace_back(std::to_string(uid));
+ return RunSubprocess(args);
+}
+
+SmokeTestHelperRunner::Result
+ SmokeTestHelperRunner::MountInstallPkgsWithSubprocess(
+ const std::vector<bf::path>& paths, uid_t uid) const {
+ std::vector<std::string> args;
+ args.emplace_back("-w");
+ for (const bf::path& p : paths)
+ args.emplace_back(p.string());
+ args.emplace_back("-u");
+ args.emplace_back(std::to_string(uid));
+ return RunSubprocess(args);
+}
+
+SmokeTestHelperRunner::Result SmokeTestHelperRunner::RecoveryPkgsWithSubprocess(
+ const std::vector<bf::path>& paths, uid_t uid) const {
+ std::vector<std::string> args;
+ args.emplace_back("-b");
+ for (const bf::path& p : paths)
+ args.emplace_back(p.string());
+ args.emplace_back("-u");
+ args.emplace_back(std::to_string(uid));
+ return RunSubprocess(args);
+}
+
+SmokeTestHelperRunner::Result
+ SmokeTestHelperRunner::UninstallPkgsWithSubprocess(
+ const std::vector<std::string>& pkgids, uid_t uid) const {
+ std::vector<std::string> args;
+ args.emplace_back("-d");
+ args.insert(args.end(), pkgids.begin(), pkgids.end());
+ args.emplace_back("-u");
+ args.emplace_back(std::to_string(uid));
+ return RunSubprocess(args);
+}
+
+SmokeTestHelperRunner::Result
+ SmokeTestHelperRunner::InstallPkgsWithSubprocessAndKill(
+ const std::vector<bf::path>& paths, uid_t uid, useconds_t delay) const {
+ std::vector<std::string> args;
+ args.emplace_back("-i");
+ for (const bf::path& p : paths)
+ args.emplace_back(p.string());
+ args.emplace_back("-u");
+ args.emplace_back(std::to_string(uid));
+ return RunSubprocessAndKill(args, delay);
+}
+
+SmokeTestHelperRunner::Result
+ SmokeTestHelperRunner::MountInstallPkgsWithSubprocessAndKill(
+ const std::vector<bf::path>& paths, uid_t uid, useconds_t delay) const {
+ std::vector<std::string> args;
+ args.emplace_back("-w");
+ for (const bf::path& p : paths)
+ args.emplace_back(p.string());
+ args.emplace_back("-u");
+ args.emplace_back(std::to_string(uid));
+ return RunSubprocessAndKill(args, delay);
+}
+
bool CopySmackAccess(const boost::filesystem::path& src,
const boost::filesystem::path& dst) {
if (!bf::exists(src) && !bf::is_symlink(src)) {
const bf::path& path, uid_t uid, useconds_t delay) const;
Result UninstallWithSubprocessAndKill(
const std::string& pkgid, uid_t uid, useconds_t delay) const;
+ Result InstallPkgsWithSubprocess(
+ const std::vector<bf::path>& paths, uid_t uid) const;
+ Result MountInstallPkgsWithSubprocess(
+ const std::vector<bf::path>& paths, uid_t uid) const;
+ Result RecoveryPkgsWithSubprocess(
+ const std::vector<bf::path>& paths, uid_t uid) const;
+ Result UninstallPkgsWithSubprocess(
+ const std::vector<std::string>& pkgids, uid_t uid) const;
+ Result InstallPkgsWithSubprocessAndKill(
+ const std::vector<bf::path>& paths, uid_t uid, useconds_t delay) const;
+ Result MountInstallPkgsWithSubprocessAndKill(
+ const std::vector<bf::path>& paths, uid_t uid, useconds_t delay) const;
private:
Result RunSubprocess(std::vector<std::string> args) const;