[Bugfix][CI] fix file name too long error in Omni · Doc Test with H100 (#3209)
Signed-off-by: wangyu <410167048@qq.com>
This commit is contained in:
1 parent
954d0642a4
commit
b50fe1d8b1
3 files changed
+56
-22
No files matched your search
@@ -351,3 +351,33 @@ def strip_trailing_audio_saved_line(text: str) -> str:
|
||||
while lines and lines[-1].strip().startswith("Audio saved to"):
|
||||
lines.pop()
|
||||
return "\n".join(lines).strip()
|
||||
|
||||
|
||||
def strip_audio_saved_to_lines(text: str) -> str:
|
||||
"""Remove every line starting with ``Audio saved to`` (streaming prints one per chunk).
|
||||
|
||||
Without this, :func:`extract_content_after_keyword` with ``content:`` and ``DOTALL``
|
||||
keeps those lines inside the captured text segment.
|
||||
"""
|
||||
lines = [ln for ln in text.splitlines() if not ln.strip().startswith("Audio saved to")]
|
||||
return "\n".join(lines).strip()
|
||||
|
||||
|
||||
def extract_last_audio_saved_path(text: str) -> str:
|
||||
"""Return the filesystem path from the last ``Audio saved to`` line.
|
||||
|
||||
Non-streaming output has a single line; streaming prints one path per chunk.
|
||||
Do not use :func:`extract_content_after_keyword` with ``Audio saved to`` for
|
||||
streaming: greedy ``.+`` under ``DOTALL`` concatenates every path and body into one
|
||||
invalid string (Linux ``File name too long`` when opening it as a path).
|
||||
"""
|
||||
last_path: str | None = None
|
||||
for line in text.splitlines():
|
||||
stripped = line.strip()
|
||||
if stripped.startswith("Audio saved to"):
|
||||
rest = stripped[len("Audio saved to") :].strip()
|
||||
if rest:
|
||||
last_path = rest
|
||||
if last_path is None:
|
||||
raise AssertionError("'Audio saved to' line with a path not found in command output")
|
||||
return last_path
|
||||
@@ -10,7 +10,9 @@ import pytest
|
||||
|
||||
from tests.examples.helpers import (
|
||||
extract_content_after_keyword,
|
||||
extract_last_audio_saved_path,
|
||||
run_cmd,
|
||||
strip_audio_saved_to_lines,
|
||||
strip_trailing_audio_saved_line,
|
||||
)
|
||||
from tests.helpers.mark import hardware_test
|
||||
@@ -55,8 +57,8 @@ def test_send_multimodal_request_001(omni_server) -> None:
|
||||
text_content = strip_trailing_audio_saved_line(text_content_tmp)
|
||||
|
||||
# Verify text output same as audio output
|
||||
wav_path = extract_content_after_keyword("Audio saved to", result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path.strip()}")
|
||||
wav_path = extract_last_audio_saved_path(result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path}")
|
||||
print(f"text content is: {text_content}")
|
||||
print(f"audio content is: {audio_content}")
|
||||
|
||||
@@ -91,8 +93,8 @@ def test_send_multimodal_request_002(omni_server) -> None:
|
||||
text_content = strip_trailing_audio_saved_line(text_content_tmp)
|
||||
|
||||
# Verify text output same as audio output
|
||||
wav_path = extract_content_after_keyword("Audio saved to", result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path.strip()}")
|
||||
wav_path = extract_last_audio_saved_path(result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path}")
|
||||
print(f"text content is: {text_content}")
|
||||
assert all(keyword in text_content for keyword in ["baby", "book"]), (
|
||||
"The output does not contain any of the keywords in video description."
|
||||
@@ -176,8 +178,8 @@ def test_modality_control_002(omni_server) -> None:
|
||||
|
||||
result = run_cmd(command)
|
||||
# Verify text output same as audio output
|
||||
wav_path = extract_content_after_keyword("Audio saved to", result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path.strip()}")
|
||||
wav_path = extract_last_audio_saved_path(result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path}")
|
||||
print(f"audio content is: {audio_content}")
|
||||
assert all(keyword in audio_content for keyword in ["baby", "book"]), (
|
||||
"The output does not contain any of the keywords in video description."
|
||||
@@ -207,8 +209,8 @@ def test_modality_control_003(omni_server) -> None:
|
||||
text_content = strip_trailing_audio_saved_line(text_content_tmp)
|
||||
|
||||
# Verify text output same as audio output
|
||||
wav_path = extract_content_after_keyword("Audio saved to", result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path.strip()}")
|
||||
wav_path = extract_last_audio_saved_path(result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path}")
|
||||
print(f"text content is: {text_content}")
|
||||
assert all(keyword in text_content for keyword in ["baby", "book"]), (
|
||||
"The output does not contain any of the keywords in video description."
|
||||
@@ -239,11 +241,11 @@ def test_stream_001(omni_server) -> None:
|
||||
result = run_cmd(command)
|
||||
|
||||
text_content_tmp = extract_content_after_keyword("content:", result)
|
||||
text_content = strip_trailing_audio_saved_line(text_content_tmp)
|
||||
text_content = strip_audio_saved_to_lines(text_content_tmp)
|
||||
|
||||
# Verify text output same as audio output
|
||||
wav_path = extract_content_after_keyword("Audio saved to", result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path.strip()}")
|
||||
wav_path = extract_last_audio_saved_path(result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path}")
|
||||
print(f"text content is: {text_content}")
|
||||
assert all(keyword in text_content for keyword in ["baby", "book"]), (
|
||||
"The output does not contain any of the keywords in video description."
|
||||
|
||||
@@ -10,7 +10,9 @@ import pytest
|
||||
|
||||
from tests.examples.helpers import (
|
||||
extract_content_after_keyword,
|
||||
extract_last_audio_saved_path,
|
||||
run_cmd,
|
||||
strip_audio_saved_to_lines,
|
||||
strip_trailing_audio_saved_line,
|
||||
)
|
||||
from tests.helpers.mark import hardware_test
|
||||
@@ -51,9 +53,9 @@ def test_send_multimodal_request_001(omni_server) -> None:
|
||||
result = run_cmd(command)
|
||||
text_content_tmp = extract_content_after_keyword("Chat completion output from text:", result)
|
||||
text_content = strip_trailing_audio_saved_line(text_content_tmp)
|
||||
wav_path = extract_content_after_keyword("Audio saved to", result)
|
||||
wav_path = extract_last_audio_saved_path(result)
|
||||
# Verify text output same as audio output
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path.strip()}")
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path}")
|
||||
print(f"text content is: {text_content}")
|
||||
print(f"audio content is: {audio_content}")
|
||||
|
||||
@@ -83,8 +85,8 @@ def test_send_multimodal_request_002(omni_server) -> None:
|
||||
text_content = strip_trailing_audio_saved_line(text_content_tmp)
|
||||
|
||||
# Verify text output same as audio output
|
||||
wav_path = extract_content_after_keyword("Audio saved to", result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path.strip()}")
|
||||
wav_path = extract_last_audio_saved_path(result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path}")
|
||||
print(f"text content is: {text_content}")
|
||||
print(f"audio content is: {audio_content}")
|
||||
assert all(keyword in text_content for keyword in ["baby", "book"]), (
|
||||
@@ -148,8 +150,8 @@ def test_modality_control_002(omni_server) -> None:
|
||||
|
||||
result = run_cmd(command)
|
||||
# Verify text output same as audio output
|
||||
wav_path = extract_content_after_keyword("Audio saved to", result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path.strip()}")
|
||||
wav_path = extract_last_audio_saved_path(result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path}")
|
||||
print(f"audio content is: {audio_content}")
|
||||
assert "cherry blossom" in audio_content, "The output does not contain any of the keywords."
|
||||
|
||||
@@ -174,8 +176,8 @@ def test_modality_control_003(omni_server) -> None:
|
||||
text_content = strip_trailing_audio_saved_line(text_content_tmp)
|
||||
|
||||
# Verify text output same as audio output
|
||||
wav_path = extract_content_after_keyword("Audio saved to", result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path.strip()}")
|
||||
wav_path = extract_last_audio_saved_path(result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path}")
|
||||
print(f"text content is: {text_content}")
|
||||
assert "cherry blossom" in audio_content, "The output does not contain any of the keywords."
|
||||
print(f"audio content is: {audio_content}")
|
||||
@@ -200,11 +202,11 @@ def test_stream_001(omni_server) -> None:
|
||||
result = run_cmd(command)
|
||||
|
||||
text_content_tmp = extract_content_after_keyword("content:", result)
|
||||
text_content = strip_trailing_audio_saved_line(text_content_tmp)
|
||||
text_content = strip_audio_saved_to_lines(text_content_tmp)
|
||||
|
||||
# Verify text output same as audio output
|
||||
wav_path = extract_content_after_keyword("Audio saved to", result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path.strip()}")
|
||||
wav_path = extract_last_audio_saved_path(result)
|
||||
audio_content = convert_audio_file_to_text(output_path=f"./{wav_path}")
|
||||
print(f"text content is: {text_content}")
|
||||
assert "cherry blossom" in audio_content, "The output does not contain any of the keywords."
|
||||
print(f"audio content is: {audio_content}")
|
||||
|
||||
Reference in new issue
Block a user