1- <!DOCTYPE html> < html lang ="en "> < head > < meta charset ="utf-8 "> < meta name ="viewport " content ="width=device-width, initial-scale=1.0 "> < meta name ="generator " content ="rustdoc "> < meta name ="description " content ="Defines an End-to-End test. "> < title > test in ink_e2e_macro - Rust</ title > < script > if ( window . location . protocol !== "file:" ) document . head . insertAdjacentHTML ( "beforeend" , "SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2" . split ( "," ) . map ( f => `<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${ f } ">` ) . join ( "" ) ) </ script > < link rel ="stylesheet " href ="../static.files/normalize-9960930a.css "> < link rel ="stylesheet " href ="../static.files/rustdoc-1a91846b.css "> < meta name ="rustdoc-vars " data-root-path ="../ " data-static-root-path ="../static.files/ " data-current-crate ="ink_e2e_macro " data-themes ="" data-resource-suffix ="" data-rustdoc-version ="1.88.0 (6b00bc388 2025-06-23) " data-channel ="1.88.0 " data-search-js ="search-f7877310.js " data-settings-js ="settings-5514c975.js " > < script src ="../static.files/storage-4e99c027.js "> </ script > < script defer src ="sidebar-items.js "> </ script > < script defer src ="../static.files/main-7ef8a74a.js "> </ script > < noscript > < link rel ="stylesheet " href ="../static.files/noscript-893ab5e7.css "> </ noscript > < link rel ="icon " href ="https://use.ink/crate-docs/favicon.png "> </ head > < body class ="rustdoc attr "> <!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--> < nav class ="mobile-topbar "> < button class ="sidebar-menu-toggle " title ="show sidebar "> </ button > < a class ="logo-container " href ="../ink_e2e_macro/index.html "> < img src ="https://use.ink/img/crate-docs/logo.png " alt =""> </ a > </ nav > < nav class ="sidebar "> < div class ="sidebar-crate "> < a class ="logo-container " href ="../ink_e2e_macro/index.html "> < img src ="https://use.ink/img/crate-docs/logo.png " alt ="logo "> </ a > < h2 > < a href ="../ink_e2e_macro/index.html "> ink_< wbr > e2e_< wbr > macro</ a > < span class ="version "> 6.0.0-beta.1</ span > </ h2 > </ div > < div class ="sidebar-elems "> < section id ="rustdoc-toc "> < h2 class ="location "> < a href ="# "> test</ a > </ h2 > < h3 > < a href ="# "> Sections</ a > </ h3 > < ul class ="block top-toc "> < li > < a href ="#header-arguments " title ="Header Arguments "> Header Arguments</ a > < ul > < li > < a href ="#custom-environment " title ="Custom Environment "> Custom Environment</ a > </ li > < li > < a href ="#custom-backend " title ="Custom Backend "> Custom Backend</ a > </ li > </ ul > </ li > < li > < a href ="#example " title ="Example "> Example</ a > </ li > </ ul > </ section > < div id ="rustdoc-modnav "> < h2 class ="in-crate "> < a href ="index.html "> In crate ink_< wbr > e2e_< wbr > macro</ a > </ h2 > </ div > </ div > </ nav > < div class ="sidebar-resizer "> </ div > < main > < div class ="width-limiter "> < rustdoc-search > </ rustdoc-search > < section id ="main-content " class ="content "> < div class ="main-heading "> < div class ="rustdoc-breadcrumbs "> < a href ="index.html "> ink_e2e_macro</ a > </ div > < h1 > Attribute Macro < span class ="attr "> test</ span > < button id ="copy-path " title ="Copy item path to clipboard "> Copy item path</ button > </ h1 > < rustdoc-toolbar > </ rustdoc-toolbar > < span class ="sub-heading "> < a class ="src " href ="../src/ink_e2e_macro/lib.rs.html#140-142 "> Source</ a > </ span > </ div > < pre class ="rust item-decl "> < code > #[test]</ code > </ pre > < details class ="toggle top-doc " open > < summary class ="hideme "> < span > Expand description</ span > </ summary > < div class ="docblock "> < p > Defines an End-to-End test.</ p >
1+ <!DOCTYPE html> < html lang ="en "> < head > < meta charset ="utf-8 "> < meta name ="viewport " content ="width=device-width, initial-scale=1.0 "> < meta name ="generator " content ="rustdoc "> < meta name ="description " content ="Defines an End-to-End test. "> < title > test in ink_e2e_macro - Rust</ title > < script > if ( window . location . protocol !== "file:" ) document . head . insertAdjacentHTML ( "beforeend" , "SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2" . split ( "," ) . map ( f => `<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${ f } ">` ) . join ( "" ) ) </ script > < link rel ="stylesheet " href ="../static.files/normalize-9960930a.css "> < link rel ="stylesheet " href ="../static.files/rustdoc-1a91846b.css "> < meta name ="rustdoc-vars " data-root-path ="../ " data-static-root-path ="../static.files/ " data-current-crate ="ink_e2e_macro " data-themes ="" data-resource-suffix ="" data-rustdoc-version ="1.88.0 (6b00bc388 2025-06-23) " data-channel ="1.88.0 " data-search-js ="search-f7877310.js " data-settings-js ="settings-5514c975.js " > < script src ="../static.files/storage-4e99c027.js "> </ script > < script defer src ="sidebar-items.js "> </ script > < script defer src ="../static.files/main-7ef8a74a.js "> </ script > < noscript > < link rel ="stylesheet " href ="../static.files/noscript-893ab5e7.css "> </ noscript > < link rel ="icon " href ="https://use.ink/crate-docs/favicon.png "> </ head > < body class ="rustdoc attr "> <!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--> < nav class ="mobile-topbar "> < button class ="sidebar-menu-toggle " title ="show sidebar "> </ button > < a class ="logo-container " href ="../ink_e2e_macro/index.html "> < img src ="https://use.ink/img/crate-docs/logo.png " alt =""> </ a > </ nav > < nav class ="sidebar "> < div class ="sidebar-crate "> < a class ="logo-container " href ="../ink_e2e_macro/index.html "> < img src ="https://use.ink/img/crate-docs/logo.png " alt ="logo "> </ a > < h2 > < a href ="../ink_e2e_macro/index.html "> ink_< wbr > e2e_< wbr > macro</ a > < span class ="version "> 6.0.0-beta.1</ span > </ h2 > </ div > < div class ="sidebar-elems "> < section id ="rustdoc-toc "> < h2 class ="location "> < a href ="# "> test</ a > </ h2 > < h3 > < a href ="# "> Sections</ a > </ h3 > < ul class ="block top-toc "> < li > < a href ="#header-arguments " title ="Header Arguments "> Header Arguments</ a > < ul > < li > < a href ="#custom-environment " title ="Custom Environment "> Custom Environment</ a > </ li > < li > < a href ="#custom-backend " title ="Custom Backend "> Custom Backend</ a > </ li > </ ul > </ li > < li > < a href ="#example " title ="Example "> Example</ a > </ li > </ ul > </ section > < div id ="rustdoc-modnav "> < h2 class ="in-crate "> < a href ="index.html "> In crate ink_< wbr > e2e_< wbr > macro</ a > </ h2 > </ div > </ div > </ nav > < div class ="sidebar-resizer "> </ div > < main > < div class ="width-limiter "> < rustdoc-search > </ rustdoc-search > < section id ="main-content " class ="content "> < div class ="main-heading "> < div class ="rustdoc-breadcrumbs "> < a href ="index.html "> ink_e2e_macro</ a > </ div > < h1 > Attribute Macro < span class ="attr "> test</ span > < button id ="copy-path " title ="Copy item path to clipboard "> Copy item path</ button > </ h1 > < rustdoc-toolbar > </ rustdoc-toolbar > < span class ="sub-heading "> < a class ="src " href ="../src/ink_e2e_macro/lib.rs.html#152-154 "> Source</ a > </ span > </ div > < pre class ="rust item-decl "> < code > #[test]</ code > </ pre > < details class ="toggle top-doc " open > < summary class ="hideme "> < span > Expand description</ span > </ summary > < div class ="docblock "> < p > Defines an End-to-End test.</ p >
22< p > The system requirements are:</ p >
33< ul >
44< li > A Substrate node with < code > pallet-revive</ code > installed on the local system. You can e.g.
@@ -22,16 +22,24 @@ <h4 id="custom-backend"><a class="doc-anchor" href="#custom-backend">§</a>Custo
2222
2323< div class ="example-wrap "> < pre class ="rust rust-example-rendered "> < code > < span class ="kw "> type </ span > E2EResult<T> = std::result::Result<T, Box<< span class ="kw "> dyn </ span > std::error::Error>>;
2424
25- < span class ="attr "> #[ink_sandbox ::test(backend(runtime_only(sandbox = ink_sandbox::DefaultSandbox, client = ink_sandbox::SandboxClient)) )]
26- </ span > < span class ="kw "> async fn </ span > runtime_call_works() -> E2EResult<()> {
25+ < span class ="attr "> #[ink_e2e ::test(runtime )]
26+ </ span > < span class ="kw "> async fn </ span > runtime_call_works(< span class =" kw-2 " > mut </ span > client: Client ) -> E2EResult<()> {
2727 < span class ="comment "> // ...
2828</ span > }</ code > </ pre > </ div >
29+ < p > This defaults to < code > ink_runtime::DefaultRuntime</ code > together with the built-in
30+ < code > ink_runtime::RuntimeClient</ code > .</ p >
2931< p > In this configuration the test will not run against a node that is running in the
3032background, but against an in-process slimmed down < code > pallet-revive</ code > execution
3133environment.</ p >
3234< p > Please see < a href ="https://use.ink/basics/contract-testing/drink "> the page on testing with DRink!</ a >
3335in our documentation for more details.
3436For a full example < a href ="https://github.com/use-ink/ink-examples/tree/v5.x.x/e2e-runtime-only-backend "> see here</ a > .</ p >
37+ < p > You can also provide a custom runtime:</ p >
38+
39+ < div class ="example-wrap "> < pre class ="rust rust-example-rendered "> < code > < span class ="attr "> #[ink_e2e::test(runtime(< span class ="kw "> crate</ span > ::CustomRuntime))]
40+ </ span > < span class ="kw "> async fn </ span > runtime_call_works(< span class ="kw-2 "> mut </ span > client: Client) -> E2EResult<()> {
41+ < span class ="comment "> // ...
42+ </ span > }</ code > </ pre > </ div >
3543< h2 id ="example "> < a class ="doc-anchor " href ="#example "> §</ a > Example</ h2 >
3644< div class ="example-wrap "> < pre class ="rust rust-example-rendered "> < code > < span class ="attr "> #[ink::contract]
3745</ span > < span class ="kw "> mod </ span > my_module {
0 commit comments