Skip to content

Commit 3dea69e

Browse files
mchernyavskyyopox
authored andcommitted
RUN: Don't use Redirect Input from when building
1 parent 24e3ed2 commit 3dea69e

File tree

2 files changed

+36
-3
lines changed

2 files changed

+36
-3
lines changed

src/main/kotlin/org/rust/cargo/runconfig/buildtool/CargoBuildManager.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,10 @@ object CargoBuildManager {
236236
"test" -> ParametersListUtil.join("test", "--no-run", *commandArguments.toTypedArray())
237237
else -> return null
238238
}
239-
// building does not require root privileges anyway
239+
240+
// building does not require root privileges and redirect input anyway
240241
buildConfiguration.withSudo = false
242+
buildConfiguration.isRedirectInput = false
241243

242244
return buildConfiguration
243245
}

src/test/kotlin/org/rustSlowTests/ide/actions/RsBuildActionTest.kt

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import org.rust.cargo.toolchain.CargoCommandLine
2121
import org.rust.fileTree
2222
import org.rust.ide.actions.RsBuildAction
2323
import org.rustSlowTests.cargo.runconfig.buildtool.CargoBuildTest
24+
import java.nio.file.Path
2425

2526
@MinRustcVersion("1.48.0")
2627
class RsBuildActionTest : CargoBuildTest() {
@@ -278,17 +279,47 @@ class RsBuildActionTest : CargoBuildTest() {
278279
assertFalse(actualCommandLine.withSudo)
279280
}
280281

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+
281305
private fun performBuildAction() {
282306
val action = ActionManager.getInstance().getAction("Rust.Build") as RsBuildAction
283307
action.performForContext(TestDataProvider(project))
284308
}
285309

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+
) {
287315
val runManager = RunManager.getInstance(project) as RunManagerImpl
288316
myFixture.configureFromTempProjectFile(fileWithCaret)
289317
val producer = CompositeCargoRunConfigurationProducer()
290318
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
292323
}
293324
runManager.addConfiguration(settings)
294325
runManager.selectedConfiguration = settings

0 commit comments

Comments
 (0)