blob: dd199923843720fe51e07b09544c7c18c2931a07 [file] [log] [blame]
/*
* Copyright 2014-present Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package com.facebook.buck.cxx;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import com.facebook.buck.io.ProjectFilesystem;
import com.facebook.buck.shell.ShellStep;
import com.facebook.buck.step.ExecutionContext;
import com.facebook.buck.step.Step;
import com.facebook.buck.step.TestExecutionContext;
import com.facebook.buck.testutil.FakeProjectFilesystem;
import com.google.common.collect.ImmutableList;
import org.junit.Test;
import java.nio.file.Path;
import java.nio.file.Paths;
public class YaccStepTest {
@Test
public void lexStepUsesCorrectCommand() {
ProjectFilesystem projectFilesystem = new FakeProjectFilesystem();
ExecutionContext context = TestExecutionContext.newBuilder()
.setProjectFilesystem(projectFilesystem)
.build();
// Setup some dummy values for inputs to the CxxLinkStep
Path yacc = Paths.get("yacc");
ImmutableList<String> flags = ImmutableList.of("-flag");
Path outputPrefix = Paths.get("outputPrefix");
Path input = Paths.get("input");
// Create our CxxLinkStep to test.
YaccStep yaccStep = new YaccStep(
yacc,
flags,
outputPrefix,
input);
// Verify it uses the expected command.
ImmutableList<String> expected = ImmutableList.<String>builder()
.add(yacc.toString())
.addAll(flags)
.add("-d")
.add("-b", outputPrefix.toString())
.add(input.toString())
.build();
Step firstStep = yaccStep.iterator().next();
assertTrue(firstStep instanceof ShellStep);
ShellStep shellStep = (ShellStep) firstStep;
ImmutableList<String> actual = shellStep.getShellCommand(context);
assertEquals(expected, actual);
}
}