# Path: lib/util.py
# STATUS_NORMAL=1
# STATUS_MAX_MEMORY_EXCEEDED=2
# STATUS_MAX_RUNTIME_EXCEEDED=3
# MAX_LEN_OUT = 10000
# def runAndMeasure(command,detailed=True,maxtime=0,maxmem=0):
# def runSimple(command):
# def runAndMeasureInternal(return_queue,command,maxtime=0,maxmem=0):
# def runInternal(control_queue,command,max_memory):
# def measureProcess(queue, initial_pids, command, measurement_interval=1, max_runtime=0, max_memory=0, debug=False):
# 	def extendTargets(targets, proc):
# 	def killTargets(targets):
# 	def updateTargets(targets, metrics):
# 	def updateMetrics(target, metrics):
# def loadConfig(name, parent_dir="", already_included=[]):
# def setCallDir(d):
# def setRootDir(d):
# def enterCallDir():
# def enterRootDir():
# def getRootDir():
# def nl2br(text):
# def msg(text="", level=1):
# def yes_no(b):
# def md5(text):
# def merge(x, y):
# def formatFilesize(n):
# def percent(val, base, offset=0):
# def abs_path(path):
# def get_sam_header_line_count(filename):
# def is_sam_sorted(filename):
# def sort_sam(filename,threads=1):
# def sort_sam_picard(filename,threads=-1):
# def line_count(filename):
# def sanitize_string(s):
# def makeExportDropdown(plot_id,csv_filename):
# def parseMD(md,seq):


import copy
import subprocess
import os
import time
import hashlib
import traceback
import sys
import resource
import yaml
from lib import util
			self.errors.append(("Maximum number of errors exceeded for test", None, None))
			return
		elif len(self.errors) > self.max_errors:
			return

		self.dbg(text + " at " + str(affected_file) + ":" + str(affected_pos), "ERROR")
		self.errors.append((text, affected_file, affected_pos))
		self.mate.traceback()

	def fatal_error(self, text, affected_file=None, affected_pos=None):
		self.error(text, affected_file, affected_pos)
		self.mate.traceback()
		raise SystemExit

	def getWarnings(self):
		return self.warnings

	def getErrors(self):
		return self.errors

	def getSuccess(self):
		return self.getErrorCount() == 0

	def getErrorCount(self):
		return len(self.errors)

	def getWarningCount(self):
		return len(self.warnings)

	def getComment(self):

# Path: lib/util.py
# STATUS_NORMAL=1
# STATUS_MAX_MEMORY_EXCEEDED=2
# STATUS_MAX_RUNTIME_EXCEEDED=3
# MAX_LEN_OUT = 10000
# def runAndMeasure(command,detailed=True,maxtime=0,maxmem=0):
# def runSimple(command):
# def runAndMeasureInternal(return_queue,command,maxtime=0,maxmem=0):
# def runInternal(control_queue,command,max_memory):
# def measureProcess(queue, initial_pids, command, measurement_interval=1, max_runtime=0, max_memory=0, debug=False):
# 	def extendTargets(targets, proc):
# 	def killTargets(targets):
# 	def updateTargets(targets, metrics):
# 	def updateMetrics(target, metrics):
# def loadConfig(name, parent_dir="", already_included=[]):
# def setCallDir(d):
# def setRootDir(d):
# def enterCallDir():
# def enterRootDir():
# def getRootDir():
# def nl2br(text):
# def msg(text="", level=1):
# def yes_no(b):
# def md5(text):
# def merge(x, y):
# def formatFilesize(n):
# def percent(val, base, offset=0):
# def abs_path(path):
# def get_sam_header_line_count(filename):
# def is_sam_sorted(filename):
# def sort_sam(filename,threads=1):
# def sort_sam_picard(filename,threads=-1):
# def line_count(filename):
# def sanitize_string(s):
# def makeExportDropdown(plot_id,csv_filename):
# def parseMD(md,seq):


# Path: lib/test.py
import copy
import subprocess
import os
import time
import hashlib
import traceback
import sys
import resource
import yaml
from lib import util

			self.errors.append(("Maximum number of errors exceeded for test", None, None))
			return
		elif len(self.errors) > self.max_errors:
			return

		self.dbg(text + " at " + str(affected_file) + ":" + str(affected_pos), "ERROR")
		self.errors.append((text, affected_file, affected_pos))
		self.mate.traceback()

	def fatal_error(self, text, affected_file=None, affected_pos=None):
		self.error(text, affected_file, affected_pos)
		self.mate.traceback()
		raise SystemExit

	def getWarnings(self):
		return self.warnings

	def getErrors(self):
		return self.errors

	def getSuccess(self):
		return self.getErrorCount() == 0

	def getErrorCount(self):
		return len(self.errors)

	def getWarningCount(self):
		return len(self.warnings)

	def getComment(self):

		if "comment" in self.config: