예제 #1
0
  public void testGetPutApiInNestedDir()
      throws IOException, InstantiationException, IllegalAccessException {
    FInt level = FInt.make(1);

    assertNull(testCompiledNestedImportEnv.getApiNull(fsiFiles[1]));
    assertNull(testCompiledNestedImportEnv.getApiNull(fsiFiles[2]));
    assertNull(testCompiledNestedImportEnv.getApiNull("NonExistentApi"));

    Environment loadedLevel1Api = SimpleClassLoader.loadEnvironment(fsiFiles[1], true);
    Environment loadedLevel2Api = SimpleClassLoader.loadEnvironment(fsiFiles[2], true);
    testCompiledNestedImportEnv.putApi(fsiFiles[1], loadedLevel1Api);
    testCompiledNestedImportEnv.putApi(fsiFiles[2], loadedLevel2Api);

    Environment env1 = testCompiledNestedImportEnv.getApiNull(fsiFiles[1]);
    Environment env2 = testCompiledNestedImportEnv.getApiNull(fsiFiles[2]);

    assertEquals(loadedLevel1Api, env1);
    assertEquals(loadedLevel2Api, env2);

    env1.putValueRaw("level1", level);
    env2.putValueRaw("level2", level);

    assertEquals(level, loadedLevel1Api.getRootValueNull("level1"));
    assertEquals(level, loadedLevel2Api.getRootValueNull("level2"));
  }
예제 #2
0
 public Class findClass(String name) throws ClassNotFoundException {
   Iterator it = loaders.values().iterator();
   while (it.hasNext()) {
     SimpleClassLoader cl = (SimpleClassLoader) it.next();
     try {
       Class cls = cl.findClass(name);
       return cls;
     } catch (ClassNotFoundException e) {
     }
   }
   throw new ClassNotFoundException(name);
 }
예제 #3
0
  public void testGetPutApi() throws IOException, InstantiationException, IllegalAccessException {
    FInt val = FInt.make(65);
    String apiName = fsiFiles[0];

    assertNull(testCompiledImportEnv.getApiNull(apiName));
    Environment loadedEnv = SimpleClassLoader.loadEnvironment(fsiFiles[0], true);
    testCompiledImportEnv.putApi(apiName, loadedEnv);
    Environment env = testCompiledImportEnv.getApiNull(apiName);
    assertEquals(loadedEnv, env);

    testLibraryEnv.putValue("false", val);
    env.putValueRaw("A", val);
    assertEquals(val, loadedEnv.getRootValueNull("A"));
  }
예제 #4
0
  /* (non-Javadoc)
   * @see junit.framework.TestCase#setUp()
   */
  @Override
  protected void setUp() throws Exception {
    Shell.setPhaseOrder(PhaseOrder.interpreterPhaseOrder);
    Shell.setScala(false);
    fssFiles = new String[4];
    fsiFiles = new String[3];

    fssFiles[0] = "TestCompiledEnvironments";
    fssFiles[1] = "TestCompiledImports";
    fssFiles[2] = "TestCompiledNestedImports";
    fssFiles[3] = WellKnownNames.fortressLibrary();

    for (String fssFile : fssFiles) {
      compileTestProgram(fssFile + ".fss");
    }
    testCompiledEnv = SimpleClassLoader.loadEnvironment(fssFiles[0], false);
    testCompiledImportEnv = SimpleClassLoader.loadEnvironment(fssFiles[1], false);
    testCompiledNestedImportEnv = SimpleClassLoader.loadEnvironment(fssFiles[2], false);
    testLibraryEnv = SimpleClassLoader.loadEnvironment(fssFiles[3], false);

    fsiFiles[0] = "AsciiVal";
    fsiFiles[1] = "a.b.NestedOne";
    fsiFiles[2] = "a.b.c.d.NestedTwo";
  }