fix: support empty string literals in textfx
- Fix tokenizer to emit empty string token when closing quote on empty buffer - Add force parameter to flush_word() to handle empty quoted strings - Add test case for echo "" and echo ''
This commit is contained in:
@ -205,3 +205,21 @@ async def test_while_body_can_use_if(runner: PipelineRunner):
|
||||
assert not isinstance(parsed, str)
|
||||
results = await runner.run_pipeline(parsed, None, TextHandlerEnvironment(False))
|
||||
assert results[0].code == 1
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_echo_empty_string(runner: PipelineRunner):
|
||||
"""测试 echo 空字符串"""
|
||||
# 双引号空字符串
|
||||
parsed = runner.parse_pipeline('echo ""')
|
||||
assert not isinstance(parsed, str)
|
||||
results = await runner.run_pipeline(parsed, None, TextHandlerEnvironment(False))
|
||||
assert results[0].code == 0
|
||||
assert results[0].ostream == ''
|
||||
|
||||
# 单引号空字符串
|
||||
parsed2 = runner.parse_pipeline("echo ''")
|
||||
assert not isinstance(parsed2, str)
|
||||
results2 = await runner.run_pipeline(parsed2, None, TextHandlerEnvironment(False))
|
||||
assert results2[0].code == 0
|
||||
assert results2[0].ostream == ''
|
||||
|
||||
Reference in New Issue
Block a user