/**
* Analytica - beta version - Systems Monitoring Tool
*
* Copyright (C) 2013, KleeGroup, direction.technique@kleegroup.com (http://www.kleegroup.com)
* KleeGroup, Centre d'affaire la Boursidi�re - BP 159 - 92357 Le Plessis Robinson Cedex - France
*
* This program is free software; you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Foundation;
* either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program;
* if not, see <http://www.gnu.org/licenses>
*
* Linking this library statically or dynamically with other modules is making a combined work based on this library.
* Thus, the terms and conditions of the GNU General Public License cover the whole combination.
*
* As a special exception, the copyright holders of this library give you permission to link this library
* with independent modules to produce an executable, regardless of the license terms of these independent modules,
* and to copy and distribute the resulting executable under terms of your choice, provided that you also meet,
* for each linked independent module, the terms and conditions of the license of that module.
* An independent module is a module which is not derived from or based on this library.
* If you modify this library, you may extend this exception to your version of the library,
* but you are not obliged to do so.
* If you do not wish to do so, delete this exception statement from your version.
*/
package io.analytica.spies.impl.javassist;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import org.junit.Test;
/**
* Implementation d'un agent de jvm.
* Celui ci doit etre inclus dans un jar et pass� en parametre � la jvm :
* <code>-javaagent:"monjar.jar"=option</code>
* Ce jar doit avoir un manifest qui contient la ligne suivante :
* <code>Premain-Class: io.analytica.spies.imp.javassist.AnalyticaSpyAgent</code>
*
* Cet agent ajoute un ClassFileTransformer sp�cifique qui a pour but d'instrumenter
* les m�thodes selon un param�trage externe.
* L'option de l'agent dans la ligne de commande repr�sente le nom du fichier de param�trage.
*
* @author npiedeloup
* @version $Id: MemoryLeakAgent.java,v 1.2 2012/09/28 09:30:03 pchretien Exp $
*/
public final class ConfAnalyticaSpyAgentTest {
/**
* Test simple avec deux compteurs.
* Test sur l'envoi de 1000 articles d'un poids de 25 kg.
* Chaque article coute 10�.
*/
@Test
public void testEscapeComments() {
final String[] testedTexts = { //
"/* First comment \n first comment�line two*/\n/* Second comment */", //
"start_code();\n/* First comment */\nmore_code(); \n/* Second comment */\nend_code();", //
"/*\n * Common multi-line comment style.\n */\n/* Second comment */", //
"start_code();\n/****\n * Common multi-line comment style.\n ****/\nmore_code(); \n/*\n * Another common multi-line comment style.\n */\nend_code();", //
"/****\n * Common multi-line comment style.\n ****/\n/****\n * Another common multi-line comment style.\n */" //
};
final String[] testedPatterns = { //
//"/\\*.*\\*/", //
// "/\\*(.|[\\r\\n])*\\*/",//
"/\\*(.|[\\r\\n])*?\\*/",//
"(?:/\\*(?:[^*]|(?:\\*+[^*/]))*\\*+/)|(?://.*)",//
};
doTestParsing(testedTexts, testedPatterns);
}
private void doTestParsing(final String[] testedlogs, final String[] testedPatterns) {
final List<Pattern> patterns = new ArrayList<Pattern>(testedPatterns.length);
for (final String testedPattern : testedPatterns) {
patterns.add(Pattern.compile(testedPattern));
}
for (final String testedlog : testedlogs) {
System.out.println("\n\n" + testedlog);
for (int i = 0; i < testedPatterns.length; i++) {
System.out.println(i + ": " + testedlog.replaceAll(testedPatterns[i], ""));
}
}
}
}