@@ -0,0 +1,38 | |||||
|
1 | #!/usr/bin/env python3 | |||
|
2 | ||||
|
3 | __author__ = "Alexis Jeandet" | |||
|
4 | __copyright__ = "Copyright 2018, Laboratory of Plasma Physics" | |||
|
5 | __credits__ = [] | |||
|
6 | __license__ = "GPLv2" | |||
|
7 | __version__ = "1.0.0" | |||
|
8 | __maintainer__ = "Alexis Jeandet" | |||
|
9 | __email__ = "alexis.jeandet@member.fsf.org" | |||
|
10 | __status__ = "Development" | |||
|
11 | ||||
|
12 | import argparse | |||
|
13 | import subprocess | |||
|
14 | ||||
|
15 | ||||
|
16 | ||||
|
17 | parser = argparse.ArgumentParser() | |||
|
18 | parser.add_argument("-s", "--sources", help="Source path path", required=True) | |||
|
19 | parser.add_argument("-o", "--output-folder", help="Will generate html report into this folder", required=True) | |||
|
20 | parser.add_argument("-g", "--gcov-exe", help="Gcov executable", required=True) | |||
|
21 | parser.add_argument("path", help="Path where are located gcda and gcno files") | |||
|
22 | ||||
|
23 | args = parser.parse_args() | |||
|
24 | ||||
|
25 | def main(): | |||
|
26 | p = subprocess.Popen(["gcovr", | |||
|
27 | "--gcov-executable=" + args.gcov_exe, | |||
|
28 | "--object-directory=" + args.path, | |||
|
29 | "-r=" + args.sources, | |||
|
30 | "--html", | |||
|
31 | "--html-details", | |||
|
32 | "-o=" + args.output_folder + "/gcov.html" | |||
|
33 | ], | |||
|
34 | stdout=subprocess.PIPE) | |||
|
35 | ||||
|
36 | ||||
|
37 | if __name__ == "__main__": | |||
|
38 | main() |
@@ -1,41 +1,49 | |||||
1 | #!/usr/bin/env python3 |
|
1 | #!/usr/bin/env python3 | |
2 |
|
2 | |||
3 | __author__ = "Alexis Jeandet" |
|
3 | __author__ = "Alexis Jeandet" | |
4 | __copyright__ = "Copyright 2018, Laboratory of Plasma Physics" |
|
4 | __copyright__ = "Copyright 2018, Laboratory of Plasma Physics" | |
5 | __credits__ = [] |
|
5 | __credits__ = [] | |
6 | __license__ = "GPLv2" |
|
6 | __license__ = "GPLv2" | |
7 | __version__ = "1.0.0" |
|
7 | __version__ = "1.0.0" | |
8 | __maintainer__ = "Alexis Jeandet" |
|
8 | __maintainer__ = "Alexis Jeandet" | |
9 | __email__ = "alexis.jeandet@member.fsf.org" |
|
9 | __email__ = "alexis.jeandet@member.fsf.org" | |
10 | __status__ = "Development" |
|
10 | __status__ = "Development" | |
11 |
|
11 | |||
12 | import time |
|
12 | import time | |
13 | import sys |
|
13 | import sys | |
14 | import os |
|
14 | import os | |
15 | import serial |
|
15 | import serial | |
16 | import argparse |
|
16 | import argparse | |
17 | from datetime import datetime |
|
17 | from datetime import datetime | |
|
18 | import pathlib | |||
|
19 | from shutil import copyfile | |||
|
20 | ||||
18 |
|
21 | |||
19 | parser = argparse.ArgumentParser() |
|
22 | parser = argparse.ArgumentParser() | |
20 | parser.add_argument("-f", "--gcov-file", help="Gcov output file generated by record_lfr_console.py") |
|
23 | parser.add_argument("-r", "--remove-prefix", help="Will remove given prefix path", default="") | |
|
24 | parser.add_argument("-o", "--output-folder", help="Will prepend given path to gcda files", default="") | |||
|
25 | parser.add_argument("file", help="Gcov output file generated by record_lfr_console.py") | |||
21 | args = parser.parse_args() |
|
26 | args = parser.parse_args() | |
22 |
|
27 | |||
23 |
|
28 | |||
24 |
|
||||
25 | def main(): |
|
29 | def main(): | |
26 |
with open(args. |
|
30 | with open(args.file, 'r') as gcov: | |
27 | files = [] |
|
31 | files = [] | |
28 | for line in gcov.readlines(): |
|
32 | for line in gcov.readlines(): | |
29 | head,dest_file,data = line.split(',') |
|
33 | head, dest_file,data = line.split(',') | |
30 | if dest_file not in files: |
|
34 | if dest_file not in files: | |
31 | files.append(dest_file) |
|
35 | files.append(dest_file) | |
32 | if head == '_GCOV_': |
|
36 | if head == '_GCOV_': | |
|
37 | gcno_file = dest_file.replace(".gcda",".gcno") | |||
|
38 | dest_file = dest_file.replace(args.remove_prefix, args.output_folder) | |||
|
39 | pathlib.Path(os.path.dirname(dest_file)).mkdir(parents=True, exist_ok=True) | |||
|
40 | copyfile(gcno_file, gcno_file.replace(args.remove_prefix, args.output_folder)) | |||
33 | print(f"Writing {dest_file}\n") |
|
41 | print(f"Writing {dest_file}\n") | |
34 | with open(dest_file,'wb') as gcda_file: |
|
42 | with open(dest_file,'wb') as gcda_file: | |
35 | gcda_file.write(bytes([int(''.join(value),16) for value in zip(data[::2],data[1::2]) ])) |
|
43 | gcda_file.write(bytes([int(''.join(value),16) for value in zip(data[::2],data[1::2]) ])) | |
36 | else: |
|
44 | else: | |
37 | raise |
|
45 | raise | |
38 |
|
46 | |||
39 |
|
47 | |||
40 | if __name__ == "__main__": |
|
48 | if __name__ == "__main__": | |
41 | main() |
|
49 | main() |
1 | NO CONTENT: modified file chmod 100644 => 100755 |
|
NO CONTENT: modified file chmod 100644 => 100755 |
General Comments 0
You need to be logged in to leave comments.
Login now