Commit 2c4da18a authored by Sandipan Das's avatar Sandipan Das

Add utility for cc tests to read command outputs

This introduces a separate source file for adding common
utilities which can be used by any of the cc tests. For
now, we add a function to read values from the output of
a command with a format string like scanf().
Signed-off-by: default avatarSandipan Das <sandipan@linux.vnet.ibm.com>
parent a3bfe09c
......@@ -17,7 +17,8 @@ add_executable(test_libbcc
test_bpf_table.cc
test_hash_table.cc
test_usdt_args.cc
test_usdt_probes.cc)
test_usdt_probes.cc
utils.cc)
target_link_libraries(test_libbcc bcc-shared dl)
add_test(NAME test_libbcc COMMAND ${TEST_WRAPPER} c_test_all sudo ${CMAKE_CURRENT_BINARY_DIR}/test_libbcc)
......
/*
* Copyright (c) 2017 IBM Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdarg.h>
#include <stdio.h>
int cmd_scanf(const char *cmd, const char *fmt, ...) {
va_list args;
FILE *pipe;
va_start(args, fmt);
pipe = popen(cmd, "r");
if (pipe == NULL) {
va_end(args);
return -1;
}
vfscanf(pipe, fmt, args);
va_end(args);
pclose(pipe);
return 0;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment