Package org.jboss.byteman.contrib.bmunit
Class BMUnit
- java.lang.Object
-
- org.jboss.byteman.contrib.bmunit.BMUnit
-
public class BMUnit extends java.lang.Object
Byteman Unit test manager class which provides support for loading and unloading scripts. This version assumes loads the agent as needed (unless inhibited -- see below) using System properties to control what hostname and port it uses for the socket. Other system properties can be used to configure operation of the load/unload operations.
-
-
Constructor Summary
Constructors Constructor Description BMUnit()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description protected static java.lang.String
findScript(java.lang.String dir, java.lang.String name)
Tries to find dir/name in the working directory.protected static java.lang.String
findScript(java.lang.String dir, java.lang.String... names)
static java.lang.String
getHost()
getter for the host name used to communicate with the agentstatic java.lang.String
getLoadDirectory()
getter for the load directorystatic boolean
getPolicy()
getter for the security policy settingstatic int
getPort()
getter for the port used to communicate with the agentstatic java.lang.String
getResourceLoadDirectory()
getter for the resource load directorystatic boolean
isAllowConfigUpdate()
getter for the allowAgentConfigUpdate settingstatic boolean
isBMUnitVerbose()
getter for the BMUnit verbose settingstatic boolean
isDebug()
getter for the Byteman debug settingstatic boolean
isVerbose()
getter for the Byteman verbose settingstatic void
loadScriptFile(java.lang.Class<?> clazz, java.lang.String dir)
loads a script by calling loadScriptFile(clazz, null, dir)static void
loadScriptFile(java.lang.Class<?> clazz, java.lang.String testName, java.lang.String dir)
loads a script from the load directory using the name of a unit test as the root name for the script file and ".btm" or, failing that, ".txt" for the file extensionstatic void
loadScriptText(java.lang.Class<?> clazz, java.lang.String testname, java.lang.String scriptText)
loads a script supplied as a text String rather than via a file on diskprivate static java.lang.String
normalize(java.lang.String dir, boolean endWithSeparator)
transform the supplied directory string if necessary to employ the file separator appropriate to the current file system, including a separator at the end if requested and not present.static void
unloadScriptFile(java.lang.Class<?> clazz, java.lang.String testName)
loads a script from the load directory using the name of a unit test as the root name for the script file and ".btm" or, failing that, ".txt" for the file extensionstatic void
unloadScriptText(java.lang.Class<?> clazz, java.lang.String testName)
unloads a script previously supplied as a text String
-
-
-
Method Detail
-
isAllowConfigUpdate
public static boolean isAllowConfigUpdate()
getter for the allowAgentConfigUpdate setting- Returns:
- the allowAgentConfigUpdate setting
-
isVerbose
public static boolean isVerbose()
getter for the Byteman verbose setting- Returns:
- the Byteman verbose setting
-
isDebug
public static boolean isDebug()
getter for the Byteman debug setting- Returns:
- the Byteman debug setting
-
isBMUnitVerbose
public static boolean isBMUnitVerbose()
getter for the BMUnit verbose setting- Returns:
- the BMUnit verbose setting
-
getLoadDirectory
public static java.lang.String getLoadDirectory()
getter for the load directory- Returns:
- the load directory
-
getResourceLoadDirectory
public static java.lang.String getResourceLoadDirectory()
getter for the resource load directory- Returns:
- the resource load directory
-
normalize
private static java.lang.String normalize(java.lang.String dir, boolean endWithSeparator)
transform the supplied directory string if necessary to employ the file separator appropriate to the current file system, including a separator at the end if requested and not present. BMUnit assumes that all supplied paths are specified in Unix format i.e. with a '/' separator. So, transformation of '/' to '\' is only performed on Windows systems.
-
getHost
public static java.lang.String getHost()
getter for the host name used to communicate with the agent- Returns:
- the host name
-
getPort
public static int getPort()
getter for the port used to communicate with the agent- Returns:
- the port
-
getPolicy
public static boolean getPolicy()
getter for the security policy setting- Returns:
- the security policy setting
-
loadScriptFile
public static void loadScriptFile(java.lang.Class<?> clazz, java.lang.String dir) throws java.lang.Exception
loads a script by calling loadScriptFile(clazz, null, dir)- Parameters:
clazz
- the test classdir
- the directory to load the script from- Throws:
java.lang.Exception
- if the script cannot be loaded
-
loadScriptFile
public static void loadScriptFile(java.lang.Class<?> clazz, java.lang.String testName, java.lang.String dir) throws java.lang.Exception
loads a script from the load directory using the name of a unit test as the root name for the script file and ".btm" or, failing that, ".txt" for the file extension- Parameters:
clazz
- the classname of the unit testtestName
- the name of the unit test methoddir
- the directory in which the scripts are located- Throws:
java.lang.Exception
- if the script cannot be loaded
-
unloadScriptFile
public static void unloadScriptFile(java.lang.Class<?> clazz, java.lang.String testName) throws java.lang.Exception
loads a script from the load directory using the name of a unit test as the root name for the script file and ".btm" or, failing that, ".txt" for the file extension- Parameters:
clazz
- the test classtestName
- the test name- Throws:
java.lang.Exception
- if the script cannot be unloaded
-
loadScriptText
public static void loadScriptText(java.lang.Class<?> clazz, java.lang.String testname, java.lang.String scriptText) throws java.lang.Exception
loads a script supplied as a text String rather than via a file on disk- Parameters:
clazz
- the test classtestname
- the test namescriptText
- the text of the rule or rules contained in the script- Throws:
java.lang.Exception
- if the script text cannot be loaded
-
unloadScriptText
public static void unloadScriptText(java.lang.Class<?> clazz, java.lang.String testName) throws java.lang.Exception
unloads a script previously supplied as a text String- Parameters:
clazz
- the test classtestName
- the test name- Throws:
java.lang.Exception
- if the script text cannot be unloaded
-
findScript
protected static java.lang.String findScript(java.lang.String dir, java.lang.String name)
Tries to find dir/name in the working directory. If not found, tries to add the ".btm", then ".txt" suffixes. If still not found, tries to find the above on the classpath- Parameters:
dir
- The name of the directoryname
- The file name- Returns:
- The fully qualified name of the file, or null if not found
-
findScript
protected static java.lang.String findScript(java.lang.String dir, java.lang.String... names)
-
-