@@ -21,6 +21,7 @@ import org.rust.cargo.toolchain.CargoCommandLine
21
21
import org.rust.fileTree
22
22
import org.rust.ide.actions.RsBuildAction
23
23
import org.rustSlowTests.cargo.runconfig.buildtool.CargoBuildTest
24
+ import java.nio.file.Path
24
25
25
26
@MinRustcVersion(" 1.48.0" )
26
27
class RsBuildActionTest : CargoBuildTest () {
@@ -278,17 +279,47 @@ class RsBuildActionTest : CargoBuildTest() {
278
279
assertFalse(actualCommandLine.withSudo)
279
280
}
280
281
282
+ fun `test build does not use redirect input` () {
283
+ val testProject = fileTree {
284
+ toml(" Cargo.toml" , """
285
+ [package]
286
+ name = "foo"
287
+ version = "0.1.0"
288
+ authors = []
289
+ """ )
290
+ dir(" src" ) {
291
+ rust(" main.rs" , """
292
+ fn main() {/*caret*/}
293
+ """ )
294
+ }
295
+ }.create()
296
+
297
+ setUpSelectedConfigurationFromContext(testProject.fileWithCaret, redirectInputFrom = " dummy.txt" )
298
+ performBuildAction()
299
+ testBuildViewManager.waitFinished()
300
+
301
+ val actualCommandLine = lastBuildCommandLine!!
302
+ assertNull(actualCommandLine.redirectInputFrom)
303
+ }
304
+
281
305
private fun performBuildAction () {
282
306
val action = ActionManager .getInstance().getAction(" Rust.Build" ) as RsBuildAction
283
307
action.performForContext(TestDataProvider (project))
284
308
}
285
309
286
- private fun setUpSelectedConfigurationFromContext (fileWithCaret : String , withSudo : Boolean = false) {
310
+ private fun setUpSelectedConfigurationFromContext (
311
+ fileWithCaret : String ,
312
+ withSudo : Boolean = false,
313
+ redirectInputFrom : String? = null
314
+ ) {
287
315
val runManager = RunManager .getInstance(project) as RunManagerImpl
288
316
myFixture.configureFromTempProjectFile(fileWithCaret)
289
317
val producer = CompositeCargoRunConfigurationProducer ()
290
318
val settings = createRunnerAndConfigurationSettingsFromContext(producer, null ).apply {
291
- (configuration as ? CargoCommandConfiguration )?.withSudo = withSudo
319
+ val configuration = configuration as ? CargoCommandConfiguration
320
+ configuration?.withSudo = withSudo
321
+ configuration?.isRedirectInput = redirectInputFrom != null
322
+ configuration?.redirectInputPath = redirectInputFrom
292
323
}
293
324
runManager.addConfiguration(settings)
294
325
runManager.selectedConfiguration = settings
0 commit comments