pub struct TestContext { /* private fields */ }Expand description
A TestContext provides common functionality for all tests which interact with an Assembler.
It is used by constructing it with TestContext::default(), which will initialize the
diagnostic reporting infrastructure, and construct a default Assembler instance for you. You
can then optionally customize the context, or start invoking any of its test helpers.
Some of the assertion macros defined above require a TestContext, so be aware of that.
Implementations§
Source§impl TestContext
impl TestContext
pub fn new() -> Self
pub fn source_manager(&self) -> Arc<dyn SourceManager>
Sourcepub fn parse_forms(&self, source: Arc<SourceFile>) -> Result<Vec<Form>, Report>
pub fn parse_forms(&self, source: Arc<SourceFile>) -> Result<Vec<Form>, Report>
Sourcepub fn parse_program(&self, source: impl Parse) -> Result<Box<Module>, Report>
pub fn parse_program(&self, source: impl Parse) -> Result<Box<Module>, Report>
Parse the given source file into an executable Module.
This runs semantic analysis, and the returned module is guaranteed to be syntactically valid.
Sourcepub fn parse_kernel(&self, source: impl Parse) -> Result<Box<Module>, Report>
pub fn parse_kernel(&self, source: impl Parse) -> Result<Box<Module>, Report>
Parse the given source file into a kernel Module.
This runs semantic analysis, and the returned module is guaranteed to be syntactically valid.
Sourcepub fn parse_module(&self, source: impl Parse) -> Result<Box<Module>, Report>
pub fn parse_module(&self, source: impl Parse) -> Result<Box<Module>, Report>
Parse the given source file into an anonymous library Module.
This runs semantic analysis, and the returned module is guaranteed to be syntactically valid.
Sourcepub fn parse_module_with_path(
&self,
path: impl AsRef<Path>,
source: impl Parse,
) -> Result<Box<Module>, Report>
pub fn parse_module_with_path( &self, path: impl AsRef<Path>, source: impl Parse, ) -> Result<Box<Module>, Report>
Parse the given source file into a library Module with the given fully-qualified path.
Sourcepub fn add_module(&mut self, module: impl Parse) -> Result<(), Report>
pub fn add_module(&mut self, module: impl Parse) -> Result<(), Report>
Add module to the Assembler constructed by this context, making it available to
other modules.
Sourcepub fn add_module_from_source(
&mut self,
path: impl AsRef<Path>,
source: impl Parse,
) -> Result<(), Report>
pub fn add_module_from_source( &mut self, path: impl AsRef<Path>, source: impl Parse, ) -> Result<(), Report>
Add a module to the Assembler constructed by this context, with the fully-qualified
name path, by parsing it from the provided source file.
This will fail if the module cannot be parsed, fails semantic analysis, or conflicts with a previously added module within the assembler.
Sourcepub fn add_library(
&mut self,
library: impl AsRef<Library>,
) -> Result<(), Report>
pub fn add_library( &mut self, library: impl AsRef<Library>, ) -> Result<(), Report>
Add the modules of library to the Assembler constructed by this context.
Sourcepub fn assemble(&self, source: impl Parse) -> Result<Program, Report>
pub fn assemble(&self, source: impl Parse) -> Result<Program, Report>
Compile a [Program] from source using the Assembler constructed by this context.
NOTE: Any modules added by, e.g. add_module, will be available to the executable
module represented in source.
Sourcepub fn assemble_library(
&self,
modules: impl IntoIterator<Item = Box<Module>>,
) -> Result<Library, Report>
pub fn assemble_library( &self, modules: impl IntoIterator<Item = Box<Module>>, ) -> Result<Library, Report>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TestContext
impl !RefUnwindSafe for TestContext
impl !Send for TestContext
impl !Sync for TestContext
impl Unpin for TestContext
impl UnsafeUnpin for TestContext
impl !UnwindSafe for TestContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more