1e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov/******************************************************************************* 2398ee59bebad6835dab57b60157eff16d511709eMarc R. Hoffmann * Copyright (c) 2009, 2015 Mountainminds GmbH & Co. KG and Contributors 3e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * All rights reserved. This program and the accompanying materials 4e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * are made available under the terms of the Eclipse Public License v1.0 5e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * which accompanies this distribution, and is available at 6e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * http://www.eclipse.org/legal/epl-v10.html 7e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * 8e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Contributors: 9e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Marc R. Hoffmann - initial API and implementation 10e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * 11e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov *******************************************************************************/ 12e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovpackage org.jacoco.core.runtime; 13e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 14e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport static org.junit.Assert.assertEquals; 15e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport static org.junit.Assert.assertFalse; 16e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport static org.junit.Assert.assertNull; 17e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport static org.junit.Assert.assertTrue; 18e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 19e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport java.io.File; 2025fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmannimport java.util.Properties; 21e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 22e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.junit.BeforeClass; 23e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.junit.Test; 24e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 25e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov/** 26e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Unit tests for {@link AgentOptions}. 27e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov */ 28e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovpublic class AgentOptionsTest { 29e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 30e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov private static File defaultAgentJarFile; 31e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 32e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @BeforeClass 33e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public static void beforeClass() { 34e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov defaultAgentJarFile = new File("jacocoagent.jar"); 35e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 36e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 37e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 38e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testDefaults() { 39e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 40d5946166388e92f67220bbece1f104e21ab7b0cbMarc R. Hoffmann assertEquals(AgentOptions.DEFAULT_DESTFILE, options.getDestfile()); 41e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertTrue(options.getAppend()); 42e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("*", options.getIncludes()); 43e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("", options.getExcludes()); 44e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("sun.reflect.DelegatingClassLoader", 45e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.getExclClassloader()); 461d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann assertFalse(options.getInclBootstrapClasses()); 47e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertNull(options.getSessionId()); 48e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertTrue(options.getDumpOnExit()); 49e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals(AgentOptions.OutputMode.file, options.getOutput()); 50d5946166388e92f67220bbece1f104e21ab7b0cbMarc R. Hoffmann assertEquals(AgentOptions.DEFAULT_ADDRESS, options.getAddress()); 51d5946166388e92f67220bbece1f104e21ab7b0cbMarc R. Hoffmann assertEquals(AgentOptions.DEFAULT_PORT, options.getPort()); 52e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertNull(options.getClassDumpDir()); 53e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann assertFalse(options.getJmx()); 5425fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann 5525fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals("", options.toString()); 56e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 57e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 58e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 59e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testEmptyOptions() { 60e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(""); 61e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("", options.toString()); 62e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 63e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 64e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 65e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testNullOptions() { 6625fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann AgentOptions options = new AgentOptions((String) null); 67e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("", options.toString()); 68e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 69e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 70e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 7125fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann public void testPropertiesOptions() { 7225fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann Properties properties = new Properties(); 7347990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("destfile", "/target/test/test.exec"); 7447990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("append", "false"); 7547990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("includes", "org.*:com.*"); 7647990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("excludes", "*Test"); 7747990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("exclclassloader", "org.jacoco.test.TestLoader"); 781d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann properties.put("inclbootstrapclasses", "true"); 7947990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("sessionid", "testsession"); 8047990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("dumponexit", "false"); 8147990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("output", "tcpserver"); 8247990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("address", "remotehost"); 8347990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("port", "1234"); 8447990a4a02bb738eedd7dce6a2f2dd10d5f28cc4Marc R. Hoffmann properties.put("classdumpdir", "target/dump"); 85e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann properties.put("jmx", "true"); 8625fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann 8725fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann AgentOptions options = new AgentOptions(properties); 8825fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann 8925fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals("/target/test/test.exec", options.getDestfile()); 9025fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertFalse(options.getAppend()); 9125fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals("org.*:com.*", options.getIncludes()); 9225fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals("*Test", options.getExcludes()); 9325fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals("org.jacoco.test.TestLoader", options.getExclClassloader()); 941d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann assertTrue(options.getInclBootstrapClasses()); 9525fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals("testsession", options.getSessionId()); 9625fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertFalse(options.getDumpOnExit()); 9725fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals(AgentOptions.OutputMode.tcpserver, options.getOutput()); 9825fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals("remotehost", options.getAddress()); 9925fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals(1234, options.getPort()); 10025fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals("target/dump", options.getClassDumpDir()); 101e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann assertTrue(options.getJmx()); 10225fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann } 10325fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann 10425fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann @Test 105e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetDestile() { 106e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions("destfile=/var/test.exec"); 107e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("/var/test.exec", options.getDestfile()); 108e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 109e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 110e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 111e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetDestile() { 112e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 113e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setDestfile("/var/test.exec"); 114e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("/var/test.exec", options.getDestfile()); 115e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("destfile=/var/test.exec", options.toString()); 116e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 117e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 118e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 119e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetAppendTrue() { 120e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions("append=true"); 121e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertTrue(options.getAppend()); 122e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 123e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 124e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 125e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetAppendFalse() { 126e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions("append=false"); 127e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertFalse(options.getAppend()); 128e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 129e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 130e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 131e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetAppendTrue() { 132e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 133e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setAppend(true); 134e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertTrue(options.getAppend()); 135e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("append=true", options.toString()); 136e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 137e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 138e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 139e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetAppendFalse() { 140e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 141e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setAppend(false); 142e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertFalse(options.getAppend()); 143e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("append=false", options.toString()); 144e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 145e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 146e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 147e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetExclClassloader() { 148e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions( 149e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov "exclclassloader=org.jacoco.test.TestLoader"); 150e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("org.jacoco.test.TestLoader", options.getExclClassloader()); 151e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 152e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 153e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 154e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetExclClassloader() { 155e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 156e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setExclClassloader("org.jacoco.test.TestLoader"); 157e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("org.jacoco.test.TestLoader", options.getExclClassloader()); 158e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("exclclassloader=org.jacoco.test.TestLoader", 159e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.toString()); 160e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 161e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 162e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 163e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetIncludes() { 16425fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann AgentOptions options = new AgentOptions("includes=org.*:com.*"); 16525fb3d4e2bac150627f091d310bafb6be465f37bMarc R. Hoffmann assertEquals("org.*:com.*", options.getIncludes()); 166e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 167e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 168e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 169e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetIncludes() { 170e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 171e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setIncludes("org.jacoco.*"); 172e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("org.jacoco.*", options.getIncludes()); 173e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("includes=org.jacoco.*", options.toString()); 174e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 175e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 176e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 177e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetExcludes() { 178e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions("excludes=*Test"); 179e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("*Test", options.getExcludes()); 180e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 181e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 182e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 183e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetExcludes() { 184e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 185e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setExcludes("org.jacoco.test.*"); 186e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("org.jacoco.test.*", options.getExcludes()); 187e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("excludes=org.jacoco.test.*", options.toString()); 188e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 189e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 190e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 191310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann public void testGetIncludeBootstrapClassesTrue() { 1921d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann AgentOptions options = new AgentOptions("inclbootstrapclasses=true"); 1931d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann assertTrue(options.getInclBootstrapClasses()); 194310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann } 195310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann 196310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann @Test 197310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann public void testGetIncludeBootstrapClassesFalse() { 1981d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann AgentOptions options = new AgentOptions("inclbootstrapclasses=false"); 1991d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann assertFalse(options.getInclBootstrapClasses()); 200310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann } 201310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann 202310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann @Test 203310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann public void testSetIncludeBootstrapClassesTrue() { 204310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann AgentOptions options = new AgentOptions(); 2051d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann options.setInclBootstrapClasses(true); 2061d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann assertTrue(options.getInclBootstrapClasses()); 2071d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann assertEquals("inclbootstrapclasses=true", options.toString()); 208310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann } 209310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann 210310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann @Test 211310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann public void testSetIncludeBootstrapClassesFalse() { 212310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann AgentOptions options = new AgentOptions(); 2131d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann options.setInclBootstrapClasses(false); 2141d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann assertFalse(options.getInclBootstrapClasses()); 2151d8389bf86f8a49d31bb5182b3ec1592e2f7289aMarc R. Hoffmann assertEquals("inclbootstrapclasses=false", options.toString()); 216310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann } 217310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann 218310b7d14546c8f5e49f5e99475fb6001331ac4caMarc R. Hoffmann @Test 219e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetSessionId() { 220e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions("sessionid=testsession"); 221e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("testsession", options.getSessionId()); 222e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 223e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 224e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 225e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetSessionId() { 226e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 227e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setSessionId("testsession"); 228e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("testsession", options.getSessionId()); 229e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("sessionid=testsession", options.toString()); 230e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 231e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 232e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 233e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetDumpOnExit() { 234e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions("dumponexit=false"); 235e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertFalse(options.getDumpOnExit()); 236e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 237e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 238e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 239e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetDumpOnExit() { 240e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 241e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setDumpOnExit(false); 242e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertFalse(options.getDumpOnExit()); 243e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 244e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 245e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 246e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetOutput() { 247e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions("output=tcpserver"); 248e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals(AgentOptions.OutputMode.tcpserver, options.getOutput()); 249e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 250e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 251e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 252e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetOutput1() { 253e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 254e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setOutput("tcpclient"); 255e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals(AgentOptions.OutputMode.tcpclient, options.getOutput()); 256e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 257e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 258e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 259e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetOutput2() { 260e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 261e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setOutput(AgentOptions.OutputMode.tcpclient); 262e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals(AgentOptions.OutputMode.tcpclient, options.getOutput()); 263e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 264e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 265e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test(expected = IllegalArgumentException.class) 266e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testInvalidOutput1() { 267e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov new AgentOptions("output=foo"); 268e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 269e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 270e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test(expected = IllegalArgumentException.class) 271e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testInvalidOutput2() { 272e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 273e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setOutput("foo"); 274e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 275e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 276e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 277e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetPort() { 278e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions("port=1234"); 279e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals(1234, options.getPort()); 280e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 281e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 282e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 283e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetPort() { 284e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 285e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setPort(1234); 286e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals(1234, options.getPort()); 287e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 288e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 289e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test(expected = IllegalArgumentException.class) 290e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testParseInvalidPort() { 291e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov new AgentOptions("port=xxx"); 292e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 293e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 294e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test(expected = IllegalArgumentException.class) 295e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetNegativePort() { 296e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 297e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setPort(-1234); 298e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 299e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 300e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 301e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetAddress() { 302e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions("address=remotehost"); 303e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("remotehost", options.getAddress()); 304e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 305e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 306e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 307e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetAddress() { 308e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 309e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setAddress("remotehost"); 310e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("remotehost", options.getAddress()); 311e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 312e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 313e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 314e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testToString() { 315e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 316e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setDestfile("test.exec"); 317e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setAppend(false); 318e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("destfile=test.exec,append=false", options.toString()); 319e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 320e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 321e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test(expected = IllegalArgumentException.class) 322e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testInvalidOptionFormat() { 323e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov new AgentOptions("destfile"); 324e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 325e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 326e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test(expected = IllegalArgumentException.class) 327e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testInvalidOptionKey() { 328e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov new AgentOptions("destfile=test.exec,something=true"); 329e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 330e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 331e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test(expected = IllegalArgumentException.class) 332e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testInvalidOptionValue() { 333e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 334e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setDestfile("invalid,name.exec"); 335e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 336e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 337e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test(expected = IllegalArgumentException.class) 338e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testInvalidPortOptionValue() { 339e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov new AgentOptions("port=-1234"); 340e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 341e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 342e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 343e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testGetClassDumpDir() { 344e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions("classdumpdir=target/dump"); 345e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("target/dump", options.getClassDumpDir()); 346e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 347e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 348e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 349e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void testSetClassDumpDir() { 350e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 351e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setClassDumpDir("target/dump"); 352e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("target/dump", options.getClassDumpDir()); 353e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals("classdumpdir=target/dump", options.toString()); 354e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 355e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 356e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 357e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann public void testGetJmx() { 358e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann AgentOptions options = new AgentOptions("jmx=true"); 359e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann assertTrue(options.getJmx()); 360e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann } 361e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann 362e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann @Test 363e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann public void testSetJmx() { 364e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann AgentOptions options = new AgentOptions(); 365e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann options.setJmx(true); 366e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann assertTrue(options.getJmx()); 367e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann } 368e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann 369e2930e70cc2d5409732639f0bda3af36b27e6db4Marc R. Hoffmann @Test 3709fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann public void testGetVMArgumentWithNoOptions() { 371e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 372e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov String vmArgument = options.getVMArgument(defaultAgentJarFile); 373e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 374e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals( 375e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov String.format("-javaagent:%s=", defaultAgentJarFile.toString()), 376e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov vmArgument); 377e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 378e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 379e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 3809fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann public void testGetVMArgumentWithOneOption() { 381e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 382e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setAppend(true); 383e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 384e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov String vmArgument = options.getVMArgument(defaultAgentJarFile); 385e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 386e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals( 387e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov String.format("-javaagent:%s=append=true", 388e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov defaultAgentJarFile.toString()), vmArgument); 389e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 390e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 391e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @Test 3929fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann public void testGetVMArgumentWithOptions() { 393e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov AgentOptions options = new AgentOptions(); 394e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setAppend(true); 395e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov options.setDestfile("some test.exec"); 396e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov String vmArgument = options.getVMArgument(defaultAgentJarFile); 397e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 398e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov assertEquals(String.format( 399e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov "-javaagent:%s=destfile=some test.exec,append=true", 400e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov defaultAgentJarFile.toString()), vmArgument); 401e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 402e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 4039fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann @Test 4049fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann public void testGetQuotedVMArgument() { 4059fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann AgentOptions options = new AgentOptions(); 4069fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann options.setSessionId("my session"); 4079fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann 4089fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann String vmArgument = options.getQuotedVMArgument(defaultAgentJarFile); 4099fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann 4109fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann assertEquals(String.format("\"-javaagent:%s=sessionid=my session\"", 4119fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann defaultAgentJarFile.toString()), vmArgument); 4129fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann } 4139fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann 4149fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann @Test 4159fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann public void testPrependVMArguments() { 4169fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann AgentOptions options = new AgentOptions(); 4179fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann 4189fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann String vmArgument = options.prependVMArguments("a b c", 4199fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann defaultAgentJarFile); 4209fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann 4219fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann assertEquals( 4229fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann String.format("-javaagent:%s= a b c", 4239fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann defaultAgentJarFile.toString()), vmArgument); 4249fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann } 4259fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann 4269fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann @Test 4279fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann public void testPrependVMArgumentsReplace() { 4289fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann AgentOptions options = new AgentOptions(); 4299fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann 4309fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann String vmArgument = options.prependVMArguments(String.format( 4319fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann "a b -javaagent:%s=append=false c", defaultAgentJarFile), 4329fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann defaultAgentJarFile); 4339fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann 4349fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann assertEquals( 4359fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann String.format("-javaagent:%s= a b c", 4369fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann defaultAgentJarFile.toString()), vmArgument); 4379fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann } 4389fdd14bd5cf0ad765135c8466dcaa9921c72c74bMarc R. Hoffmann 439e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov} 440