Skip to content

Commit 9c34cc2

Browse files
committed
refactor(tests): share string completion oracle
1 parent 702b2e9 commit 9c34cc2

15 files changed

Lines changed: 17 additions & 322 deletions

tests/oracle/string/oracle_string_case.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::ffi::OsStr;
2-
use std::process::Command;
32

43
use quickjs_oxide::{
54
CallableRef, Context, DescriptorField, JsString, ObjectRef, OrdinaryPropertyDescriptor,
@@ -676,28 +675,7 @@ fn observe_oracle(oracle: &OsStr, source: &str, description: &str) -> String {
676675
}
677676

678677
fn observe_oracle_source(oracle: &OsStr, source: &str, description: &str) -> String {
679-
let wrapper = r#"
680-
try {
681-
var value=std.evalScript(scriptArgs[0]);
682-
print('return|'+typeof value+'|'+String(value));
683-
} catch(error) {
684-
if(error!==null&&typeof error==='object')print('throw|object|'+error.name+'|'+error.message);
685-
else print('throw|'+typeof error+'|'+String(error));
686-
}
687-
"#;
688-
let output = Command::new(oracle)
689-
.args(["--std", "-e", wrapper, source])
690-
.output()
691-
.unwrap_or_else(|error| panic!("could not run QuickJS for {description}: {error}"));
692-
assert!(
693-
output.status.success(),
694-
"QuickJS observer failed for {description}: {}",
695-
String::from_utf8_lossy(&output.stderr),
696-
);
697-
String::from_utf8(output.stdout)
698-
.unwrap_or_else(|error| panic!("QuickJS output was not UTF-8 for {description}: {error}"))
699-
.trim_end()
700-
.to_owned()
678+
super::quickjs_completion::observe(oracle, source, description)
701679
}
702680

703681
fn property_callable(

tests/oracle/string/oracle_string_create_html.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::ffi::OsStr;
2-
use std::process::Command;
32

43
use quickjs_oxide::{
54
CallableRef, Context, DescriptorField, JsString, ObjectRef, OrdinaryPropertyDescriptor,
@@ -703,28 +702,7 @@ fn observe_oracle(oracle: &OsStr, source: &str, description: &str) -> String {
703702
}
704703

705704
fn observe_oracle_source(oracle: &OsStr, source: &str, description: &str) -> String {
706-
let wrapper = r#"
707-
try {
708-
var value=std.evalScript(scriptArgs[0]);
709-
print('return|'+typeof value+'|'+String(value));
710-
} catch(error) {
711-
if(error!==null&&typeof error==='object')print('throw|object|'+error.name+'|'+error.message);
712-
else print('throw|'+typeof error+'|'+String(error));
713-
}
714-
"#;
715-
let output = Command::new(oracle)
716-
.args(["--std", "-e", wrapper, source])
717-
.output()
718-
.unwrap_or_else(|error| panic!("could not run QuickJS for {description}: {error}"));
719-
assert!(
720-
output.status.success(),
721-
"QuickJS observer failed for {description}: {}",
722-
String::from_utf8_lossy(&output.stderr),
723-
);
724-
String::from_utf8(output.stdout)
725-
.unwrap_or_else(|error| panic!("QuickJS output was not UTF-8 for {description}: {error}"))
726-
.trim_end()
727-
.to_owned()
705+
super::quickjs_completion::observe(oracle, source, description)
728706
}
729707

730708
fn property_callable(

tests/oracle/string/oracle_string_includes.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::ffi::OsStr;
2-
use std::process::Command;
32

43
use quickjs_oxide::{
54
AccessorValue, CallableRef, Context, DescriptorField, JsString, ObjectRef,
@@ -732,28 +731,7 @@ fn observe_oracle(oracle: &OsStr, source: &str, description: &str) -> String {
732731
}
733732

734733
fn observe_oracle_source(oracle: &OsStr, source: &str, description: &str) -> String {
735-
let wrapper = r#"
736-
try {
737-
var value=std.evalScript(scriptArgs[0]);
738-
print('return|'+typeof value+'|'+String(value));
739-
} catch(error) {
740-
if(error!==null&&typeof error==='object')print('throw|object|'+error.name+'|'+error.message);
741-
else print('throw|'+typeof error+'|'+String(error));
742-
}
743-
"#;
744-
let output = Command::new(oracle)
745-
.args(["--std", "-e", wrapper, source])
746-
.output()
747-
.unwrap_or_else(|error| panic!("could not run QuickJS for {description}: {error}"));
748-
assert!(
749-
output.status.success(),
750-
"QuickJS observer failed for {description}: {}",
751-
String::from_utf8_lossy(&output.stderr),
752-
);
753-
String::from_utf8(output.stdout)
754-
.unwrap_or_else(|error| panic!("QuickJS output was not UTF-8 for {description}: {error}"))
755-
.trim_end()
756-
.to_owned()
734+
super::quickjs_completion::observe(oracle, source, description)
757735
}
758736

759737
fn property_callable(

tests/oracle/string/oracle_string_index_search.rs

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -479,30 +479,7 @@ fn observe_rust_eval(
479479
}
480480

481481
fn observe_oracle(oracle: &OsStr, source: &str, description: &str) -> String {
482-
let wrapper = r#"
483-
try {
484-
var value = std.evalScript(scriptArgs[0]);
485-
print('return|' + typeof value + '|' + String(value));
486-
} catch (error) {
487-
if (error !== null && typeof error === 'object')
488-
print('throw|object|' + error.name + '|' + error.message);
489-
else
490-
print('throw|' + typeof error + '|' + String(error));
491-
}
492-
"#;
493-
let output = Command::new(oracle)
494-
.args(["--std", "-e", wrapper, source])
495-
.output()
496-
.unwrap_or_else(|error| panic!("could not run QuickJS for {description}: {error}"));
497-
assert!(
498-
output.status.success(),
499-
"QuickJS observer failed for {description}: {}",
500-
String::from_utf8_lossy(&output.stderr),
501-
);
502-
String::from_utf8(output.stdout)
503-
.unwrap_or_else(|error| panic!("QuickJS output was not UTF-8 for {description}: {error}"))
504-
.trim_end()
505-
.to_owned()
482+
super::quickjs_completion::observe(oracle, source, description)
506483
}
507484

508485
fn rust_graph_observations() -> Vec<String> {

tests/oracle/string/oracle_string_intrinsic.rs

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -767,28 +767,7 @@ fn observe_oracle(oracle: &OsStr, source: &str, description: &str) -> String {
767767
}
768768

769769
fn observe_oracle_source(oracle: &OsStr, source: &str, description: &str) -> String {
770-
let wrapper = r#"
771-
try {
772-
var value=std.evalScript(scriptArgs[0]);
773-
print('return|'+typeof value+'|'+String(value));
774-
} catch(error) {
775-
if(error!==null&&typeof error==='object')print('throw|object|'+error.name+'|'+error.message);
776-
else print('throw|'+typeof error+'|'+String(error));
777-
}
778-
"#;
779-
let output = Command::new(oracle)
780-
.args(["--std", "-e", wrapper, source])
781-
.output()
782-
.unwrap_or_else(|error| panic!("could not run QuickJS for {description}: {error}"));
783-
assert!(
784-
output.status.success(),
785-
"QuickJS observer failed for {description}: {}",
786-
String::from_utf8_lossy(&output.stderr),
787-
);
788-
String::from_utf8(output.stdout)
789-
.unwrap_or_else(|error| panic!("QuickJS output was not UTF-8 for {description}: {error}"))
790-
.trim_end()
791-
.to_owned()
770+
super::quickjs_completion::observe(oracle, source, description)
792771
}
793772

794773
fn oracle_lines(oracle: &OsStr, source: &str, description: &str) -> Vec<String> {

tests/oracle/string/oracle_string_match.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::ffi::OsStr;
2-
use std::process::Command;
32

43
use quickjs_oxide::{CallableRef, Context, JsString, ObjectRef, Runtime, RuntimeError, Value};
54

@@ -786,28 +785,7 @@ fn observe_rust_eval(
786785

787786
fn observe_oracle(oracle: &OsStr, source: &str, description: &str) -> String {
788787
let source = observed_source(source);
789-
let wrapper = r#"
790-
try {
791-
var value=std.evalScript(scriptArgs[0]);
792-
print('return|'+typeof value+'|'+String(value));
793-
} catch(error) {
794-
if(error!==null&&typeof error==='object')print('throw|object|'+error.name+'|'+error.message);
795-
else print('throw|'+typeof error+'|'+String(error));
796-
}
797-
"#;
798-
let output = Command::new(oracle)
799-
.args(["--std", "-e", wrapper, &source])
800-
.output()
801-
.unwrap_or_else(|error| panic!("could not run QuickJS for {description}: {error}"));
802-
assert!(
803-
output.status.success(),
804-
"QuickJS observer failed for {description}: {}",
805-
String::from_utf8_lossy(&output.stderr),
806-
);
807-
String::from_utf8(output.stdout)
808-
.unwrap_or_else(|error| panic!("QuickJS output was not UTF-8 for {description}: {error}"))
809-
.trim_end()
810-
.to_owned()
788+
super::quickjs_completion::observe(oracle, &source, description)
811789
}
812790

813791
fn eval_callable(

tests/oracle/string/oracle_string_match_all.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::ffi::OsStr;
2-
use std::process::Command;
32

43
use quickjs_oxide::{CallableRef, Context, JsString, ObjectRef, Runtime, RuntimeError, Value};
54

@@ -624,28 +623,7 @@ fn observe_rust_eval(
624623

625624
fn observe_oracle(oracle: &OsStr, source: &str, description: &str) -> String {
626625
let source = observed_source(source);
627-
let wrapper = r#"
628-
try {
629-
var value=std.evalScript(scriptArgs[0]);
630-
print('return|'+typeof value+'|'+String(value));
631-
} catch(error) {
632-
if(error!==null&&typeof error==='object')print('throw|object|'+error.name+'|'+error.message);
633-
else print('throw|'+typeof error+'|'+String(error));
634-
}
635-
"#;
636-
let output = Command::new(oracle)
637-
.args(["--std", "-e", wrapper, &source])
638-
.output()
639-
.unwrap_or_else(|error| panic!("could not run QuickJS for {description}: {error}"));
640-
assert!(
641-
output.status.success(),
642-
"QuickJS observer failed for {description}: {}",
643-
String::from_utf8_lossy(&output.stderr),
644-
);
645-
String::from_utf8(output.stdout)
646-
.unwrap_or_else(|error| panic!("QuickJS output was not UTF-8 for {description}: {error}"))
647-
.trim_end()
648-
.to_owned()
626+
super::quickjs_completion::observe(oracle, &source, description)
649627
}
650628

651629
fn eval_callable(

tests/oracle/string/oracle_string_pad.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::ffi::OsStr;
2-
use std::process::Command;
32

43
use quickjs_oxide::{
54
CallableRef, Context, DescriptorField, JsString, ObjectRef, OrdinaryPropertyDescriptor,
@@ -780,28 +779,7 @@ fn observe_oracle(oracle: &OsStr, source: &str, description: &str) -> String {
780779
}
781780

782781
fn observe_oracle_source(oracle: &OsStr, source: &str, description: &str) -> String {
783-
let wrapper = r#"
784-
try {
785-
var value=std.evalScript(scriptArgs[0]);
786-
print('return|'+typeof value+'|'+String(value));
787-
} catch(error) {
788-
if(error!==null&&typeof error==='object')print('throw|object|'+error.name+'|'+error.message);
789-
else print('throw|'+typeof error+'|'+String(error));
790-
}
791-
"#;
792-
let output = Command::new(oracle)
793-
.args(["--std", "-e", wrapper, source])
794-
.output()
795-
.unwrap_or_else(|error| panic!("could not run QuickJS for {description}: {error}"));
796-
assert!(
797-
output.status.success(),
798-
"QuickJS observer failed for {description}: {}",
799-
String::from_utf8_lossy(&output.stderr),
800-
);
801-
String::from_utf8(output.stdout)
802-
.unwrap_or_else(|error| panic!("QuickJS output was not UTF-8 for {description}: {error}"))
803-
.trim_end()
804-
.to_owned()
782+
super::quickjs_completion::observe(oracle, source, description)
805783
}
806784

807785
fn property_callable(

tests/oracle/string/oracle_string_repeat.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::ffi::OsStr;
2-
use std::process::Command;
32

43
use quickjs_oxide::{
54
CallableRef, Context, DescriptorField, JsString, ObjectRef, OrdinaryPropertyDescriptor,
@@ -628,28 +627,7 @@ fn observe_oracle(oracle: &OsStr, source: &str, description: &str) -> String {
628627
}
629628

630629
fn observe_oracle_source(oracle: &OsStr, source: &str, description: &str) -> String {
631-
let wrapper = r#"
632-
try {
633-
var value=std.evalScript(scriptArgs[0]);
634-
print('return|'+typeof value+'|'+String(value));
635-
} catch(error) {
636-
if(error!==null&&typeof error==='object')print('throw|object|'+error.name+'|'+error.message);
637-
else print('throw|'+typeof error+'|'+String(error));
638-
}
639-
"#;
640-
let output = Command::new(oracle)
641-
.args(["--std", "-e", wrapper, source])
642-
.output()
643-
.unwrap_or_else(|error| panic!("could not run QuickJS for {description}: {error}"));
644-
assert!(
645-
output.status.success(),
646-
"QuickJS observer failed for {description}: {}",
647-
String::from_utf8_lossy(&output.stderr),
648-
);
649-
String::from_utf8(output.stdout)
650-
.unwrap_or_else(|error| panic!("QuickJS output was not UTF-8 for {description}: {error}"))
651-
.trim_end()
652-
.to_owned()
630+
super::quickjs_completion::observe(oracle, source, description)
653631
}
654632

655633
fn property_callable(

tests/oracle/string/oracle_string_replace.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::ffi::OsStr;
2-
use std::process::Command;
32

43
use quickjs_oxide::{CallableRef, Context, JsString, ObjectRef, Runtime, RuntimeError, Value};
54

@@ -540,28 +539,7 @@ fn observe_rust_eval(
540539

541540
fn observe_oracle(oracle: &OsStr, source: &str, description: &str) -> String {
542541
let source = observed_source(source);
543-
let wrapper = r#"
544-
try {
545-
var value=std.evalScript(scriptArgs[0]);
546-
print('return|'+typeof value+'|'+String(value));
547-
} catch(error) {
548-
if(error!==null&&typeof error==='object')print('throw|object|'+error.name+'|'+error.message);
549-
else print('throw|'+typeof error+'|'+String(error));
550-
}
551-
"#;
552-
let output = Command::new(oracle)
553-
.args(["--std", "-e", wrapper, &source])
554-
.output()
555-
.unwrap_or_else(|error| panic!("could not run QuickJS for {description}: {error}"));
556-
assert!(
557-
output.status.success(),
558-
"QuickJS observer failed for {description}: {}",
559-
String::from_utf8_lossy(&output.stderr),
560-
);
561-
String::from_utf8(output.stdout)
562-
.unwrap_or_else(|error| panic!("QuickJS output was not UTF-8 for {description}: {error}"))
563-
.trim_end()
564-
.to_owned()
542+
super::quickjs_completion::observe(oracle, &source, description)
565543
}
566544

567545
fn eval_optional_callable(

0 commit comments

Comments
 (0)