use std::path::PathBuf;
use proptest::prelude::*;
use backhopper_xref_reader::SourceReader;
proptest! {
#[test]
fn read_one_does_not_panic_on_unicode_garbage(s in "[\\PC]{0,2048}") {
let reader = SourceReader::new();
let _ = reader.read_one(&PathBuf::from("p.erl"), &s);
}
#[test]
fn read_one_survives_multibyte_in_erlang_positions(word in "[€йä漢]{1,8}") {
let source = format!(
"%% автор: {word}\n\
-module(m).\n\
-export([f/0]).\n\
f() -> {{\"{word}\", '{word}', $€, other:call(1)}}.\n"
);
let reader = SourceReader::new();
let parsed = reader.read_one(&PathBuf::from("p.erl"), &source);
prop_assert!(parsed.is_ok());
}
}