|
80 | 80 | skip_count = 0
|
81 | 81 |
|
82 | 82 | # format
|
83 |
| -build_format = "| {:8} | {:44} | {:9} " |
| 83 | +build_format = "| {:8} | {:42} | {:10} " |
84 | 84 | build_separator = "-" * 80
|
85 | 85 |
|
86 | 86 |
|
@@ -488,38 +488,44 @@ def check_status(status, build_conf, boardKo):
|
488 | 488 | sketch_name = os.path.basename(build_conf[4][-1])
|
489 | 489 |
|
490 | 490 | if status[1] == 0:
|
491 |
| - result = "\033[32msucceeded\033[0m" |
| 491 | + result = "\033[32msucceeded \033[0m" |
492 | 492 | if args.bin:
|
493 | 493 | bin_copy(build_conf[0], sketch_name)
|
494 | 494 | nb_build_passed += 1
|
495 | 495 | elif status[1] == 1:
|
496 | 496 | # Check if failed due to a region overflowed
|
497 | 497 | logFile = os.path.join(build_conf[3], sketch_name + ".log")
|
| 498 | + error_pattern = re.compile(":\\d+:\\d+:\\serror:\\s") |
498 | 499 | ld_pattern = re.compile("arm-none-eabi/bin/ld:")
|
499 | 500 | overflow_pattern = re.compile(
|
500 | 501 | "will not fit in region|region .+ overflowed by [\\d]+ bytes"
|
501 | 502 | )
|
| 503 | + error_found = False |
502 | 504 | for i, line in enumerate(open(logFile)):
|
503 |
| - if ld_pattern.search(line): |
| 505 | + if error_pattern.search(line): |
| 506 | + error_found = True |
| 507 | + elif ld_pattern.search(line): |
504 | 508 | # If one ld line is not for region overflowed --> failed
|
505 | 509 | if overflow_pattern.search(line) is None:
|
506 |
| - result = "\033[31mfailed\033[0m " |
507 |
| - boardKo.append(build_conf[0]) |
508 |
| - if args.ci: |
509 |
| - cat(logFile) |
510 |
| - nb_build_failed += 1 |
511 |
| - break |
| 510 | + error_found = True |
| 511 | + if error_found: |
| 512 | + result = "\033[31mfailed\033[0m " |
| 513 | + boardKo.append(build_conf[0]) |
| 514 | + if args.ci: |
| 515 | + cat(logFile) |
| 516 | + nb_build_failed += 1 |
| 517 | + break |
512 | 518 | else:
|
513 | 519 | # else consider it succeeded
|
514 |
| - result = "\033[32msucceeded\033[0m" |
| 520 | + result = "\033[32msucceeded*\033[0m" |
515 | 521 | if args.bin:
|
516 | 522 | empty_bin(build_conf[0], sketch_name)
|
517 | 523 | nb_build_passed += 1
|
518 | 524 | else:
|
519 |
| - result = "\033[31merror\033[0m " |
| 525 | + result = "\033[31merror \033[0m " |
520 | 526 |
|
521 | 527 | print(
|
522 |
| - (build_format + "| {:5.2f}s |").format( |
| 528 | + (build_format + "| {:6.2f}s |").format( |
523 | 529 | "{}/{}".format(build_conf[1], build_conf[2]),
|
524 | 530 | build_conf[0],
|
525 | 531 | result,
|
@@ -730,7 +736,7 @@ def build_config(sketch, boardSkipped):
|
730 | 736 | for pattern in na_sketch_pattern[build_conf_list[idx][0]]:
|
731 | 737 | if re.search(pattern, sketch, re.IGNORECASE):
|
732 | 738 | print(
|
733 |
| - (build_format + "| {:5.2f}s |").format( |
| 739 | + (build_format + "| {:6.2f}s |").format( |
734 | 740 | "{}/{}".format(
|
735 | 741 | build_conf_list[idx][1], build_conf_list[idx][2]
|
736 | 742 | ),
|
@@ -782,7 +788,7 @@ def build_all():
|
782 | 788 | for line in wrapped_path_:
|
783 | 789 | print("| {:^76} |".format("{}".format(line)))
|
784 | 790 | print(build_separator)
|
785 |
| - print((build_format + "| {:6} |").format("Num", "Board", "Result", "Time")) |
| 791 | + print((build_format + "| {:7} |").format("Num", "Board", "Result", "Time")) |
786 | 792 | print(build_separator)
|
787 | 793 |
|
788 | 794 | build_conf_list = build_config(sketch, boardSkipped)
|
|
0 commit comments