class EIFFEL_GREP_COMMAND_TEST_SET
Test command EIFFEL_GREP_COMMAND
note
description: "Test command ${EIFFEL_GREP_COMMAND}"
author: "Finnian Reilly"
copyright: "Copyright (c) 2001-2022 Finnian Reilly"
contact: "finnian at eiffel hyphen loop dot com"
license: "MIT license (See: en.wikipedia.org/wiki/MIT_License)"
date: "2024-09-01 10:16:32 GMT (Sunday 1st September 2024)"
revision: "7"
class
EIFFEL_GREP_COMMAND_TEST_SET
inherit
EL_EQA_TEST_SET
EL_MODULE_TUPLE
SHARED_DEV_ENVIRON
EL_SHARED_TEST_TEXT
create
make
feature {NONE} -- Initialization
make
-- initialize `test_table'
do
make_named (<<
["mixed_utf_8_latin_1_encodings", agent test_mixed_utf_8_latin_1_encodings]
>>)
end
feature -- Tests
test_mixed_utf_8_latin_1_encodings
-- EIFFEL_GREP_COMMAND_TEST_SET.test_mixed_utf_8_latin_1_encodings
note
testing: "[
covers/{EL_APPENDABLE_ZSTRING}.append_encoded,
covers/{EL_OS_COMMAND_I}.set_output_encoding
]"
local
cmd: EIFFEL_GREP_COMMAND; count: INTEGER; line: ZSTRING
do
if {PLATFORM}.is_unix then
create cmd.make
cmd.set_working_directory (Dev_environ.Eiffel_loop_dir #+ "test/source")
cmd.set_options ("assert_same_string")
cmd.execute
across cmd.lines as list loop
line := list.item
if line.has_substring (Line_tag.book_info) then
assert (Line_tag.book_info + " has euro symbol", line.has (Text.Euro_symbol))
count := count + 1
elseif line.has_substring (Line_tag.city) then
assert (Line_tag.city + " has latin-1 characters > 127", line.has_substring ("DĂșn BĂșinne"))
count := count + 1
end
end
assert ("Both lines found", count = 2)
else
-- grep distributed as part of Eiffel Studio for Windows lacks `--include' option
do_nothing
end
end
feature {NONE} -- Constants
Line_tag: TUPLE [book_info, city: STRING]
once
create Result
Tuple.fill (Result, "book_info.price, transaction.address.city")
end
end