/**
   * Tests the ability to add arguments to a target platform and have them show up on new configs
   *
   * @throws Exception
   */
  public void testArguments() throws Exception {
    ITargetDefinition definition = getNewTarget();

    // Add program arguments
    String programArgs = "-testProgramArgument -testProgramArgument2";
    definition.setProgramArguments(programArgs);
    assertEquals(programArgs, definition.getProgramArguments());

    // Add VM arguments
    String vmArgs = "-testVMArgument -testVMArgument2";
    definition.setVMArguments(vmArgs);
    assertEquals(vmArgs, definition.getVMArguments());

    try {
      getTargetService().saveTargetDefinition(definition);
      setTargetPlatform(definition);

      // Check that new launch configs will be prepopulated from target
      assertEquals(vmArgs, LaunchArgumentsHelper.getInitialVMArguments());
      assertEquals(
          "-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog "
              .concat(programArgs),
          LaunchArgumentsHelper.getInitialProgramArguments());

    } finally {
      getTargetService().deleteTarget(definition.getHandle());
      resetTargetPlatform();
    }
  }