File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -514,6 +514,27 @@ defmodule CodeTest do
514514 }
515515 end
516516
517+ test "string_to_quoted raises UnicodeConversionError for invalid UTF-8 in quoted atoms and function calls" do
518+ invalid_utf8_cases = [
519+ # Quoted atom
520+ ~S{ :"\xFF"} ,
521+ ~S{ :'\xFF'} ,
522+ # Quoted function call
523+ ~S{ foo."\xFF"()} ,
524+ ~S{ foo.'\xFF'()}
525+ ]
526+
527+ for code <- invalid_utf8_cases do
528+ assert_raise UnicodeConversionError , fn ->
529+ Code . string_to_quoted! ( code )
530+ end
531+
532+ assert_raise UnicodeConversionError , fn ->
533+ Code . string_to_quoted! ( code , existing_atoms_only: true )
534+ end
535+ end
536+ end
537+
517538 @ tag :requires_source
518539 test "compile source" do
519540 assert __MODULE__ . __info__ ( :compile ) [ :source ] == String . to_charlist ( __ENV__ . file )
You can’t perform that action at this time.
0 commit comments