Arcane  v4.1.2.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
TestProcess.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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 // Teste 'echo -n TotoTiti'
21 // Doit retourner 'TotoTiti' dans 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 // Teste 'cat -' avec TotoTitiTata en entrée.
42 // Doit retourner 'TotoTitiTata' dans 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)
Ajoute l'élément val à la fin du tableau.
Vue constante d'un tableau de type T.
ConstArrayView< Byte > outputBytes() const
Contient le résultat de la sortie standard (STDOUT) du processus.
Definition Process.h:64
static ProcessExecArgs::ExecStatus execute(ProcessExecArgs &args)
Exécute un processus dont les infos sont contenues dans args.
Definition Process.cc:40
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-