teemtee / tmt

Test Management Tool
MIT License
80 stars 122 forks source link

tmt-report-result: may need to escape special symbols like colon #3226

Open juk opened 3 days ago

juk commented 3 days ago

It seems like tmt-report-result script adds testcase name to log file name. https://github.com/teemtee/tmt/blob/8245c4797d69b6a1574ae9e4445d6eb571080389/tmt/steps/execute/scripts/tmt-report-result#L26 One of my tests has colons in it's testcase names which appear is not expected by some parser.

01:32:49         Command returned '0' (success).
01:32:49         Extract results of '/livepatch/selftests'.
01:32:49         fail:
            mapping values are not allowed in this context
              in "<unicode string>", line 1, column 26
01:32:49     
01:32:49         summary: 0 tests executed

tmt-report-results.yaml

  - name: /1..7 selftests: livepatch: test-callbacks.sh Pass
    result: pass
    log:
      - 1..7_selftests:_livepatch:_test-callbacks.sh_Pass_test-callbacks_result.log
    end-time: "2024-09-14T01:32:26.859726+00:00"
    data-path: /data/guest/default-0/livepatch/selftests-1/data
  - name: /2..7 selftests: livepatch: test-ftrace.sh Pass
    result: pass
    log:
      - 2..7_selftests:_livepatch:_test-ftrace.sh_Pass_test-ftrace_result.log
    end-time: "2024-09-14T01:32:28.841241+00:00"
    data-path: /data/guest/default-0/livepatch/selftests-1/data
  - name: /3..7 selftests: livepatch: test-livepatch.sh Pass
    result: pass
    log:
      - 3..7_selftests:_livepatch:_test-livepatch.sh_Pass_test-livepatch_result.log
    end-time: "2024-09-14T01:32:36.808714+00:00"
    data-path: /data/guest/default-0/livepatch/selftests-1/data
  - name: /4..7 selftests: livepatch: test-shadow-vars.sh Pass
    result: pass
    log:
      - 4..7_selftests:_livepatch:_test-shadow-vars.sh_Pass_test-shadow-vars_result.log
    end-time: "2024-09-14T01:32:36.868439+00:00"
    data-path: /data/guest/default-0/livepatch/selftests-1/data
  - name: /5..7 selftests: livepatch: test-state.sh Pass
    result: pass
    log:
      - 5..7_selftests:_livepatch:_test-state.sh_Pass_test-state_result.log
    end-time: "2024-09-14T01:32:43.781280+00:00"
    data-path: /data/guest/default-0/livepatch/selftests-1/data
  - name: /6..7 selftests: livepatch: test-syscall.sh Pass
    result: pass
    log:
      - 6..7_selftests:_livepatch:_test-syscall.sh_Pass_test-syscall_result.log
    end-time: "2024-09-14T01:32:43.982790+00:00"
    data-path: /data/guest/default-0/livepatch/selftests-1/data
  - name: /7..7 selftests: livepatch: test-sysfs.sh Pass
    result: pass
    log:
      - 7..7_selftests:_livepatch:_test-sysfs.sh_Pass_test-sysfs_result.log
    end-time: "2024-09-14T01:32:47.802114+00:00"
    data-path: /data/guest/default-0/livepatch/selftests-1/data
happz commented 3 days ago

Or use quotes to wrap these free-form fields' values:

  - name: "/1..7 selftests: livepatch: test-callbacks.sh Pass"
    result: pass
    log:
      - "1..7_selftests:_livepatch:_test-callbacks.sh_Pass_test-callbacks_result.log"