Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
TestProcess.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7#include <gtest/gtest.h>
8
9#include "arccore/common/internal/Process.h"
10
11using namespace Arcane;
12
13/*---------------------------------------------------------------------------*/
14/*---------------------------------------------------------------------------*/
15
16#if defined(ARCCORE_OS_LINUX) || defined(ARCCORE_OS_MACOS)
17
18TEST(TestProcess, ProcessEcho)
19{
20 // Tests 'echo -n TotoTiti'
21 // Must return 'TotoTiti' in outputBytes()
22 ProcessExecArgs process_args;
23 process_args.setCommand("/bin/echo");
24 UniqueArray<String> command_args;
25 command_args.add("-n");
26 String input_str("TotoTiti");
27 command_args.add(input_str);
28 process_args.setArguments(command_args);
29
31 ASSERT_EQ(r, ProcessExecArgs::ExecStatus::OK);
32
33 ConstArrayView<Byte> output = process_args.outputBytes();
34 String output_str(output);
35 std::cout << "output_str = '" << output_str << "'\n";
36 ASSERT_EQ(input_str, output_str);
37}
38
39TEST(TestProcess, ProcessCat)
40{
41 // Tests 'cat -' with TotoTitiTata as input.
42 // Must return 'TotoTitiTata' in outputBytes()
43 ProcessExecArgs process_args;
44 process_args.setCommand("/bin/cat");
45 UniqueArray<String> command_args;
46 command_args.add("-");
47 String input_str("TotoTitiTata");
48 process_args.setArguments(command_args);
49 ConstArrayView<Byte> input_bytes = input_str.bytes().constSmallView();
50 process_args.setInputBytes(input_bytes);
51
53 ASSERT_EQ(r, ProcessExecArgs::ExecStatus::OK);
54
55 ConstArrayView<Byte> output = process_args.outputBytes();
56 String output_str(output);
57 ASSERT_EQ(input_str, output_str);
58 std::cout << "output_str = '" << output_str << "'\n";
59}
60
61#endif
void add(ConstReferenceType val)
Adds element val to the end of the array.
Constant view of an array of type T.
ConstArrayView< Byte > outputBytes() const
Contains the result of the process's standard output (STDOUT).
Definition Process.h:64
static ProcessExecArgs::ExecStatus execute(ProcessExecArgs &args)
Executes a process whose information is contained in args.
Definition Process.cc:40
1D data vector with value semantics (STL style).
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --