blob: ff7ad3d87667ee26c6889e2baa386ff63eed0f89 [file] [log] [blame]
Gediminas Ramanauskas2f0b8852013-03-14 13:52:32 -07001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Alex Vakulenko262be3f2014-07-30 15:25:50 -07005#include "debugd/src/memory_tool.h"
Gediminas Ramanauskas2f0b8852013-03-14 13:52:32 -07006
Alex Vakulenko262be3f2014-07-30 15:25:50 -07007#include "debugd/src/process_with_id.h"
Gediminas Ramanauskas2f0b8852013-03-14 13:52:32 -07008
Gediminas Ramanauskas2f0b8852013-03-14 13:52:32 -07009namespace debugd {
10
Ben Chana0011d82014-05-13 00:19:29 -070011namespace {
12
13const char kMemtesterpath[] = "/usr/sbin/memtester";
14
15} // namespace
Gediminas Ramanauskas2f0b8852013-03-14 13:52:32 -070016
Eric Carusocc7106c2017-04-27 14:22:42 -070017std::string MemtesterTool::Start(const dbus::FileDescriptor& outfd,
Eric Carusoc93a15c2017-04-24 16:15:12 -070018 const uint32_t& memory) {
Gediminas Ramanauskas2f0b8852013-03-14 13:52:32 -070019 ProcessWithId* p = CreateProcess(false);
20 if (!p)
21 return "";
22
23 p->AddArg(kMemtesterpath);
Eric Caruso96d03d32017-04-25 18:01:17 -070024 p->AddArg(base::StringPrintf("%u", memory));
Gediminas Ramanauskas2f0b8852013-03-14 13:52:32 -070025 p->AddArg("1");
Eric Carusocc7106c2017-04-27 14:22:42 -070026 p->BindFd(outfd.value(), STDOUT_FILENO);
27 p->BindFd(outfd.value(), STDERR_FILENO);
Gediminas Ramanauskas2f0b8852013-03-14 13:52:32 -070028 LOG(INFO) << "memtester: running process id: " << p->id();
29 p->Start();
30 return p->id();
31}
32
Ben Chana0011d82014-05-13 00:19:29 -070033} // namespace debugd