package com.oracle.truffle.llvm.tests;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;
import com.oracle.truffle.llvm.tests.options.TestOptions;
@RunWith(Parameterized.class)
public final class VAArgsTest extends BaseSulongOnlyHarness {
private static final String OTHER_DIR = Paths.get(TestOptions.TEST_SUITE_PATH, "..", "tests", "other").toString();
private static final String testSuffix = "O1.bc";
@Parameter(value = 0) public Path path;
@Parameter(value = 1) public RunConfiguration configuration;
@Parameter(value = 2) public String name;
@Parameters(name = "{2}")
public static Collection<Object[]> data() {
final Map<Path, RunConfiguration> runs = new HashMap<>();
runs.put(Paths.get(OTHER_DIR, "vaargs00.c.dir", testSuffix), new RunConfiguration(2, null));
runs.put(Paths.get(OTHER_DIR, "vaargs01.c.dir", testSuffix), new RunConfiguration(2, null));
runs.put(Paths.get(OTHER_DIR, "vaargs02.c.dir", testSuffix), new RunConfiguration(0, "1\n2.000000\na\n4\n5.000000\n"));
runs.put(Paths.get(OTHER_DIR, "vaargs03.c.dir", testSuffix), new RunConfiguration(0, "1\n2.000000\na\n4\n5.000000\n4\n5.000000\n"));
runs.put(Paths.get(OTHER_DIR, "vaargs04.c.dir", testSuffix), new RunConfiguration(0, "1.000000\n2.000000\n3.000000\n4.000000\n5.000000\n"));
runs.put(Paths.get(OTHER_DIR, "vaargs05.c.dir", testSuffix), new RunConfiguration(0,
"1.000000\n2\n3\n4\n5.000000\n1.000000\n2\n3\n4\n5.000000\n1.000000\n2\n3\n4\n5.000000\n1.000000\n2\n3\n4\n5.000000\n1.000000\n2\n3\n4\n5.000000\n1.000000\n2\n3\n4\n5.000000\n"));
return runs.keySet().stream().map(k -> new Object[]{k, runs.get(k), k.getFileName().toString()}).collect(Collectors.toList());
}
@Override
public Path getPath() {
return path;
}
@Override
public RunConfiguration getConfiguration() {
return configuration;
}
}