mirror of
https://github.com/anrieff/libcpuid
synced 2024-12-16 16:35:45 +00:00
Tests: fix path for cpuid_tool
When we use CMake, the 'cpuid_tool' binary is in the 'build' directory
This commit is contained in:
parent
04c3ebe0e9
commit
d60503c211
2 changed files with 29 additions and 5 deletions
|
@ -7,10 +7,12 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include "../libcpuid/libcpuid.h"
|
#include "../libcpuid/libcpuid.h"
|
||||||
|
|
||||||
#define LINE_LEN 60
|
#define LINE_LEN 60
|
||||||
#define FILENAME_LEN 128
|
#define FILENAME_LEN 128
|
||||||
|
#define PATH_MAX 1024
|
||||||
#define CMD_LEN 256
|
#define CMD_LEN 256
|
||||||
#define EXT_CPUID 0x80000000
|
#define EXT_CPUID 0x80000000
|
||||||
|
|
||||||
|
@ -58,8 +60,9 @@ int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int assigned, subleaf;
|
int assigned, subleaf;
|
||||||
uint32_t addr, prev_addr, eax, ebx, ecx, edx;
|
uint32_t addr, prev_addr, eax, ebx, ecx, edx;
|
||||||
char line[LINE_LEN], raw_filename[FILENAME_LEN], report_filename[FILENAME_LEN], cmd[CMD_LEN];
|
char line[LINE_LEN], raw_filename[FILENAME_LEN], report_filename[FILENAME_LEN];
|
||||||
FILE *fin = NULL, *fout = NULL;
|
char libcpuid_directory[PATH_MAX], cpuid_tool[PATH_MAX], cmd[CMD_LEN];
|
||||||
|
FILE *fin = NULL, *fout = NULL, *ftmp = NULL;
|
||||||
struct cpu_raw_data_t *raw = &(struct cpu_raw_data_t) {};
|
struct cpu_raw_data_t *raw = &(struct cpu_raw_data_t) {};
|
||||||
|
|
||||||
if(argc < 3)
|
if(argc < 3)
|
||||||
|
@ -74,6 +77,20 @@ int main(int argc, char *argv[])
|
||||||
snprintf(report_filename, FILENAME_LEN, "%s_report.txt", output_filename);
|
snprintf(report_filename, FILENAME_LEN, "%s_report.txt", output_filename);
|
||||||
memset(raw, 0xff, sizeof(struct cpu_raw_data_t)); // ffffffff ffffffff ffffffff ffffffff means data is missing in output test file
|
memset(raw, 0xff, sizeof(struct cpu_raw_data_t)); // ffffffff ffffffff ffffffff ffffffff means data is missing in output test file
|
||||||
|
|
||||||
|
/* Find libcpuid root directory */
|
||||||
|
if((ftmp = popen("git rev-parse --show-toplevel", "r")) == NULL)
|
||||||
|
{
|
||||||
|
perror("Failed to run 'git' command");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if(fgets(libcpuid_directory, PATH_MAX, ftmp) == NULL)
|
||||||
|
{
|
||||||
|
perror("Failed to get source directory");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
pclose(ftmp);
|
||||||
|
libcpuid_directory[strlen(libcpuid_directory) - 1] = '\0';
|
||||||
|
|
||||||
/* Open files */
|
/* Open files */
|
||||||
if((fin = fopen(input_filename, "r")) == NULL)
|
if((fin = fopen(input_filename, "r")) == NULL)
|
||||||
{
|
{
|
||||||
|
@ -128,7 +145,12 @@ int main(int argc, char *argv[])
|
||||||
fclose(fout);
|
fclose(fout);
|
||||||
|
|
||||||
/* Invoke cpuid_tool */
|
/* Invoke cpuid_tool */
|
||||||
snprintf(cmd, CMD_LEN, "../cpuid_tool/cpuid_tool --load=%s --report --outfile=%s", raw_filename, report_filename);
|
snprintf(cpuid_tool, PATH_MAX, "%s/build/cpuid_tool/cpuid_tool", libcpuid_directory);
|
||||||
|
if(access(cpuid_tool, F_OK) == 0)
|
||||||
|
snprintf(cmd, CMD_LEN, "%s --load=%s --report --outfile=%s", cpuid_tool, raw_filename, report_filename);
|
||||||
|
else
|
||||||
|
snprintf(cmd, CMD_LEN, "%s/cpuid_tool/cpuid_tool --load=%s --report --outfile=%s", libcpuid_directory, raw_filename, report_filename);
|
||||||
|
|
||||||
if(system(cmd))
|
if(system(cmd))
|
||||||
{
|
{
|
||||||
perror("Failed to load raw file in cpuid_tool");
|
perror("Failed to load raw file in cpuid_tool");
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
TESTS_DIR="$(dirname "$(realpath "$0")")"
|
TESTS_DIR="$(dirname "$(realpath "$0")")"
|
||||||
LIBCPUID_DIR="$(dirname "$TESTS_DIR")"
|
LIBCPUID_DIR="$(dirname "$TESTS_DIR")"
|
||||||
|
LIBCPUID_CPUID_TOOL="$(find "$LIBCPUID_DIR" -name cpuid_tool -type f)"
|
||||||
|
LIBCPUID_CREATE_TEST="$(find "$LIBCPUID_DIR" -name create_test.py -type f)"
|
||||||
|
|
||||||
test_files=$(find "$TESTS_DIR" -name '*.test')
|
test_files=$(find "$TESTS_DIR" -name '*.test')
|
||||||
for test_file in $test_files; do
|
for test_file in $test_files; do
|
||||||
|
@ -13,7 +15,7 @@ for test_file in $test_files; do
|
||||||
fi
|
fi
|
||||||
echo "$line" >> "$TMP_DIR/raw.txt"
|
echo "$line" >> "$TMP_DIR/raw.txt"
|
||||||
done < "$test_file"
|
done < "$test_file"
|
||||||
"$LIBCPUID_DIR/cpuid_tool/cpuid_tool" --load="$TMP_DIR/raw.txt" --report > "$TMP_DIR/report.txt"
|
"$LIBCPUID_CPUID_TOOL" --load="$TMP_DIR/raw.txt" --report > "$TMP_DIR/report.txt"
|
||||||
"$LIBCPUID_DIR/tests/create_test.py" "$TMP_DIR/raw.txt" "$TMP_DIR/report.txt" > "$test_file"
|
"$LIBCPUID_CREATE_TEST" "$TMP_DIR/raw.txt" "$TMP_DIR/report.txt" > "$test_file"
|
||||||
rm -rf "$TMP_DIR"
|
rm -rf "$TMP_DIR"
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in a new issue