/** * Author: Matthieu Leclercq */ package org.ow2.mind.target; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; import java.util.HashMap; import java.util.Map; import org.ow2.mind.CommonFrontendModule; import org.ow2.mind.inject.AbstractMindModule; import org.ow2.mind.plugin.PluginLoaderModule; import org.ow2.mind.target.ast.Compiler; import org.ow2.mind.target.ast.Flag; import org.ow2.mind.target.ast.Linker; import org.ow2.mind.target.ast.Target; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import com.google.inject.Guice; import com.google.inject.Injector; public class TestExtensionLoader { protected TargetDescriptorLoader loader; protected Map<Object, Object> context; @BeforeMethod(alwaysRun = true) public void setUp() { final Injector injector = Guice.createInjector(new PluginLoaderModule(), new CommonFrontendModule(), new AbstractMindModule() { protected void configureTargetDescriptorLoader() { bind(TargetDescriptorLoader.class) .toChainStartingWith(InterpolationLoader.class) .followedBy(ExtensionLoader.class) .endingWith(BasicTargetDescriptorLoader.class); } }); loader = injector.getInstance(TargetDescriptorLoader.class); context = new HashMap<Object, Object>(); context.put("classloader", this.getClass().getClassLoader()); } @Test(groups = {"functional", "checkin"}) public void test1() throws Exception { final Target target = loader.load("descriptor2", context); assertNotNull(loader); assertEquals("descriptor2", target.getName()); final Compiler compiler = target.getCompiler(); assertNotNull(compiler); assertEquals("gcc", compiler.getPath()); final Linker linker = target.getLinker(); assertNotNull(linker); assertEquals("ld", linker.getPath()); final Flag[] cFlags = target.getCFlags(); assertEquals(3, cFlags.length); assertNull(cFlags[0].getId()); assertEquals("-g", cFlags[0].getValue()); assertEquals("optimization", cFlags[1].getId()); assertEquals("-O1", cFlags[1].getValue()); assertEquals("warning", cFlags[2].getId()); assertEquals("-Wall", cFlags[2].getValue()); } }