@@ -1624,93 +1624,30 @@ mod tests {
1624
1624
Ok ( ( ) )
1625
1625
}
1626
1626
1627
- fn new_compile_request ( ) -> CompileRequest {
1628
- new_compile_mir_request ( )
1629
- }
1630
-
1631
- fn new_compile_assembly_request ( ) -> CompileRequest {
1632
- CompileRequest {
1633
- target : CompileTarget :: Assembly (
1634
- AssemblyFlavor :: Intel ,
1635
- DemangleAssembly :: Demangle ,
1636
- ProcessAssembly :: Filter ,
1637
- ) ,
1638
- channel : Channel :: Beta ,
1639
- crate_type : CrateType :: Library ( LibraryType :: Lib ) ,
1640
- mode : Mode :: Release ,
1641
- edition : Edition :: Rust2018 ,
1642
- tests : false ,
1643
- backtrace : false ,
1644
- code : r#"pub fn add(a: u8, b: u8) -> u8 { a + b }"# . to_owned ( ) ,
1645
- }
1646
- }
1647
-
1648
- fn new_compile_hir_request ( ) -> CompileRequest {
1649
- new_compile_hir_request_for ( Edition :: Rust2021 )
1650
- }
1651
-
1652
- fn new_compile_hir_request_for ( edition : Edition ) -> CompileRequest {
1653
- CompileRequest {
1654
- target : CompileTarget :: Hir ,
1655
- channel : Channel :: Nightly ,
1656
- crate_type : CrateType :: Library ( LibraryType :: Lib ) ,
1657
- mode : Mode :: Release ,
1658
- edition,
1659
- tests : false ,
1660
- backtrace : false ,
1661
- code : r#"pub fn sub(a: u8, b: u8) -> u8 { a - b }"# . to_owned ( ) ,
1662
- }
1663
- }
1664
-
1665
- fn new_compile_llvm_ir_request ( ) -> CompileRequest {
1666
- CompileRequest {
1667
- target : CompileTarget :: LlvmIr ,
1668
- channel : Channel :: Stable ,
1669
- crate_type : CrateType :: Library ( LibraryType :: Lib ) ,
1670
- mode : Mode :: Debug ,
1671
- edition : Edition :: Rust2015 ,
1672
- tests : false ,
1673
- backtrace : false ,
1674
- code : r#"pub fn mul(a: u8, b: u8) -> u8 { a * b }"# . to_owned ( ) ,
1675
- }
1676
- }
1677
-
1678
- fn new_compile_mir_request ( ) -> CompileRequest {
1679
- CompileRequest {
1680
- target : CompileTarget :: Mir ,
1681
- channel : Channel :: Stable ,
1682
- crate_type : CrateType :: Binary ,
1683
- mode : Mode :: Release ,
1684
- edition : Edition :: Rust2021 ,
1685
- tests : false ,
1686
- backtrace : false ,
1687
- code : r#"fn main() { println!("Hello World!"); }"# . to_owned ( ) ,
1688
- }
1689
- }
1690
-
1691
- fn new_compile_wasm_request ( ) -> CompileRequest {
1692
- CompileRequest {
1693
- target : CompileTarget :: Wasm ,
1694
- channel : Channel :: Nightly , // TODO: Can we run this on all channels now?
1695
- crate_type : CrateType :: Library ( LibraryType :: Cdylib ) ,
1696
- mode : Mode :: Release ,
1697
- edition : Edition :: Rust2021 ,
1698
- tests : false ,
1699
- backtrace : false ,
1700
- code : r#"#[export_name = "inc"] pub fn inc(a: u8) -> u8 { a + 1 }"# . to_owned ( ) ,
1701
- }
1702
- }
1627
+ const HELLO_WORLD_CODE : & str = r#"fn main() { println!("Hello World!"); }"# ;
1628
+
1629
+ const ARBITRARY_COMPILE_REQUEST : CompileRequest = CompileRequest {
1630
+ target : CompileTarget :: Mir ,
1631
+ channel : Channel :: Stable ,
1632
+ crate_type : CrateType :: Binary ,
1633
+ mode : Mode :: Release ,
1634
+ edition : Edition :: Rust2021 ,
1635
+ tests : false ,
1636
+ backtrace : false ,
1637
+ code : String :: new ( ) ,
1638
+ } ;
1703
1639
1704
1640
#[ tokio:: test]
1705
1641
#[ snafu:: report]
1706
1642
async fn compile_response ( ) -> Result < ( ) > {
1707
1643
let coordinator = new_coordinator ( ) . await ;
1708
1644
1709
- let response = coordinator
1710
- . compile ( new_compile_request ( ) )
1711
- . with_timeout ( )
1712
- . await
1713
- . unwrap ( ) ;
1645
+ let req = CompileRequest {
1646
+ code : HELLO_WORLD_CODE . into ( ) ,
1647
+ ..ARBITRARY_COMPILE_REQUEST
1648
+ } ;
1649
+
1650
+ let response = coordinator. compile ( req) . with_timeout ( ) . await . unwrap ( ) ;
1714
1651
1715
1652
assert ! ( response. success, "stderr: {}" , response. stderr) ;
1716
1653
assert_contains ! ( response. stderr, "Compiling" ) ;
@@ -1726,14 +1663,16 @@ mod tests {
1726
1663
async fn compile_streaming ( ) -> Result < ( ) > {
1727
1664
let coordinator = new_coordinator ( ) . await ;
1728
1665
1666
+ let req = CompileRequest {
1667
+ code : HELLO_WORLD_CODE . into ( ) ,
1668
+ ..ARBITRARY_COMPILE_REQUEST
1669
+ } ;
1670
+
1729
1671
let ActiveCompilation {
1730
1672
task,
1731
1673
stdout_rx,
1732
1674
stderr_rx,
1733
- } = coordinator
1734
- . begin_compile ( new_compile_request ( ) )
1735
- . await
1736
- . unwrap ( ) ;
1675
+ } = coordinator. begin_compile ( req) . await . unwrap ( ) ;
1737
1676
1738
1677
let stdout = ReceiverStream :: new ( stdout_rx) ;
1739
1678
let stdout = stdout. collect :: < String > ( ) ;
@@ -1761,11 +1700,13 @@ mod tests {
1761
1700
for edition in Edition :: ALL {
1762
1701
let coordinator = new_coordinator ( ) . await ;
1763
1702
1764
- let response = coordinator
1765
- . compile ( new_compile_hir_request_for ( edition) )
1766
- . with_timeout ( )
1767
- . await
1768
- . unwrap ( ) ;
1703
+ let req = CompileRequest {
1704
+ edition,
1705
+ code : SUBTRACT_CODE . into ( ) ,
1706
+ ..ARBITRARY_HIR_REQUEST
1707
+ } ;
1708
+
1709
+ let response = coordinator. compile ( req) . with_timeout ( ) . await . unwrap ( ) ;
1769
1710
1770
1711
let prelude = format ! ( "std::prelude::rust_{}" , edition. to_str( ) ) ;
1771
1712
@@ -1783,11 +1724,22 @@ mod tests {
1783
1724
async fn compile_assembly ( ) -> Result < ( ) > {
1784
1725
let coordinator = new_coordinator ( ) . await ;
1785
1726
1786
- let response = coordinator
1787
- . compile ( new_compile_assembly_request ( ) )
1788
- . with_timeout ( )
1789
- . await
1790
- . unwrap ( ) ;
1727
+ let req = CompileRequest {
1728
+ target : CompileTarget :: Assembly (
1729
+ AssemblyFlavor :: Intel ,
1730
+ DemangleAssembly :: Demangle ,
1731
+ ProcessAssembly :: Filter ,
1732
+ ) ,
1733
+ channel : Channel :: Beta ,
1734
+ crate_type : CrateType :: Library ( LibraryType :: Lib ) ,
1735
+ mode : Mode :: Release ,
1736
+ edition : Edition :: Rust2018 ,
1737
+ tests : false ,
1738
+ backtrace : false ,
1739
+ code : r#"pub fn add(a: u8, b: u8) -> u8 { a + b }"# . into ( ) ,
1740
+ } ;
1741
+
1742
+ let response = coordinator. compile ( req) . with_timeout ( ) . await . unwrap ( ) ;
1791
1743
1792
1744
//#[cfg(target_arch = "x86_64")]
1793
1745
//let asm = "";
@@ -1803,16 +1755,30 @@ mod tests {
1803
1755
Ok ( ( ) )
1804
1756
}
1805
1757
1758
+ const SUBTRACT_CODE : & str = r#"pub fn sub(a: u8, b: u8) -> u8 { a - b }"# ;
1759
+
1760
+ const ARBITRARY_HIR_REQUEST : CompileRequest = CompileRequest {
1761
+ target : CompileTarget :: Hir ,
1762
+ channel : Channel :: Nightly ,
1763
+ crate_type : CrateType :: Library ( LibraryType :: Lib ) ,
1764
+ mode : Mode :: Release ,
1765
+ edition : Edition :: Rust2021 ,
1766
+ tests : false ,
1767
+ backtrace : false ,
1768
+ code : String :: new ( ) ,
1769
+ } ;
1770
+
1806
1771
#[ tokio:: test]
1807
1772
#[ snafu:: report]
1808
1773
async fn compile_hir ( ) -> Result < ( ) > {
1809
1774
let coordinator = new_coordinator ( ) . await ;
1810
1775
1811
- let response = coordinator
1812
- . compile ( new_compile_hir_request ( ) )
1813
- . with_timeout ( )
1814
- . await
1815
- . unwrap ( ) ;
1776
+ let req = CompileRequest {
1777
+ code : SUBTRACT_CODE . into ( ) ,
1778
+ ..ARBITRARY_HIR_REQUEST
1779
+ } ;
1780
+
1781
+ let response = coordinator. compile ( req) . with_timeout ( ) . await . unwrap ( ) ;
1816
1782
1817
1783
assert ! ( response. success, "stderr: {}" , response. stderr) ;
1818
1784
assert_contains ! ( response. code, "extern crate std" ) ;
@@ -1827,11 +1793,18 @@ mod tests {
1827
1793
async fn compile_llvm_ir ( ) -> Result < ( ) > {
1828
1794
let coordinator = new_coordinator ( ) . await ;
1829
1795
1830
- let response = coordinator
1831
- . compile ( new_compile_llvm_ir_request ( ) )
1832
- . with_timeout ( )
1833
- . await
1834
- . unwrap ( ) ;
1796
+ let req = CompileRequest {
1797
+ target : CompileTarget :: LlvmIr ,
1798
+ channel : Channel :: Stable ,
1799
+ crate_type : CrateType :: Library ( LibraryType :: Lib ) ,
1800
+ mode : Mode :: Debug ,
1801
+ edition : Edition :: Rust2015 ,
1802
+ tests : false ,
1803
+ backtrace : false ,
1804
+ code : r#"pub fn mul(a: u8, b: u8) -> u8 { a * b }"# . into ( ) ,
1805
+ } ;
1806
+
1807
+ let response = coordinator. compile ( req) . with_timeout ( ) . await . unwrap ( ) ;
1835
1808
1836
1809
assert ! ( response. success, "stderr: {}" , response. stderr) ;
1837
1810
assert_contains ! ( response. code, "@llvm.umul.with.overflow.i8(i8, i8)" ) ;
@@ -1847,11 +1820,18 @@ mod tests {
1847
1820
// cargo-wasm only exists inside the container
1848
1821
let coordinator = Coordinator :: new_docker ( ) . await ;
1849
1822
1850
- let response = coordinator
1851
- . compile ( new_compile_wasm_request ( ) )
1852
- . with_timeout ( )
1853
- . await
1854
- . unwrap ( ) ;
1823
+ let req = CompileRequest {
1824
+ target : CompileTarget :: Wasm ,
1825
+ channel : Channel :: Nightly ,
1826
+ crate_type : CrateType :: Library ( LibraryType :: Cdylib ) ,
1827
+ mode : Mode :: Release ,
1828
+ edition : Edition :: Rust2021 ,
1829
+ tests : false ,
1830
+ backtrace : false ,
1831
+ code : r#"#[export_name = "inc"] pub fn inc(a: u8) -> u8 { a + 1 }"# . into ( ) ,
1832
+ } ;
1833
+
1834
+ let response = coordinator. compile ( req) . with_timeout ( ) . await . unwrap ( ) ;
1855
1835
1856
1836
assert ! ( response. success, "stderr: {}" , response. stderr) ;
1857
1837
assert_contains ! (
0 commit comments