From 7e594e390a05230e91d063eea7edf5d48f0da608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Sat, 13 Jun 2020 22:57:14 +0200 Subject: [PATCH] Convert fortran tests --- pmd-fortran/pom.xml | 10 + .../pmd/cpd/FortranTokenizerTest.java | 30 +- .../fortran/cpd/testdata}/sample.for | 0 .../pmd/lang/fortran/cpd/testdata/sample.txt | 566 ++++++++++++++++++ 4 files changed, 590 insertions(+), 16 deletions(-) rename pmd-fortran/src/test/resources/net/sourceforge/pmd/{cpd => lang/fortran/cpd/testdata}/sample.for (100%) create mode 100644 pmd-fortran/src/test/resources/net/sourceforge/pmd/lang/fortran/cpd/testdata/sample.txt diff --git a/pmd-fortran/pom.xml b/pmd-fortran/pom.xml index c98a55d035..bf403e5a98 100644 --- a/pmd-fortran/pom.xml +++ b/pmd-fortran/pom.xml @@ -39,10 +39,20 @@ junit test + + org.junit.vintage + junit-vintage-engine + test + net.sourceforge.pmd pmd-test test + + net.sourceforge.pmd + pmd-lang-test + test + diff --git a/pmd-fortran/src/test/java/net/sourceforge/pmd/cpd/FortranTokenizerTest.java b/pmd-fortran/src/test/java/net/sourceforge/pmd/cpd/FortranTokenizerTest.java index 6058ffe1b0..f143b6339a 100644 --- a/pmd-fortran/src/test/java/net/sourceforge/pmd/cpd/FortranTokenizerTest.java +++ b/pmd-fortran/src/test/java/net/sourceforge/pmd/cpd/FortranTokenizerTest.java @@ -4,36 +4,34 @@ package net.sourceforge.pmd.cpd; -import java.io.IOException; -import java.nio.charset.StandardCharsets; +import java.util.Properties; -import org.apache.commons.io.IOUtils; -import org.junit.Before; import org.junit.Test; -import net.sourceforge.pmd.testframework.AbstractTokenizerTest; +import net.sourceforge.pmd.cpd.test.CpdTextComparisonTest; /** * @author rpelisse * */ -public class FortranTokenizerTest extends AbstractTokenizerTest { +public class FortranTokenizerTest extends CpdTextComparisonTest { - @Before - @Override - public void buildTokenizer() throws IOException { - this.tokenizer = new FortranTokenizer(); - this.sourceCode = new SourceCode(new SourceCode.StringCodeLoader(this.getSampleCode(), "sample.for")); + public FortranTokenizerTest() { + super(".for"); } @Override - public String getSampleCode() throws IOException { - return IOUtils.toString(FortranTokenizerTest.class.getResourceAsStream("sample.for"), StandardCharsets.UTF_8); + protected String getResourcePrefix() { + return "../lang/fortran/cpd/testdata"; + } + + @Override + public Tokenizer newTokenizer(Properties properties) { + return new FortranTokenizer(); } @Test - public void tokenizeTest() throws IOException { - this.expectedTokenCount = 434; - super.tokenizeTest(); + public void testSample() { + doTest("sample"); } } diff --git a/pmd-fortran/src/test/resources/net/sourceforge/pmd/cpd/sample.for b/pmd-fortran/src/test/resources/net/sourceforge/pmd/lang/fortran/cpd/testdata/sample.for similarity index 100% rename from pmd-fortran/src/test/resources/net/sourceforge/pmd/cpd/sample.for rename to pmd-fortran/src/test/resources/net/sourceforge/pmd/lang/fortran/cpd/testdata/sample.for diff --git a/pmd-fortran/src/test/resources/net/sourceforge/pmd/lang/fortran/cpd/testdata/sample.txt b/pmd-fortran/src/test/resources/net/sourceforge/pmd/lang/fortran/cpd/testdata/sample.txt new file mode 100644 index 0000000000..062f773267 --- /dev/null +++ b/pmd-fortran/src/test/resources/net/sourceforge/pmd/lang/fortran/cpd/testdata/sample.txt @@ -0,0 +1,566 @@ + [Image] or [Truncated image[ Bcol Ecol +L1 + [options/extend_source] 8 28 +L2 + [program] 8 14 + [tp3] 16 18 +L3 + [implicit] 8 15 + [none] 17 20 +L5 + [! ce programme va demander la sais[ 1 87 +L6 + [!parties de la chaine en plusieurs[ 1 92 +L7 + [!sous programme correspondant.] 1 30 +L9 + [character*60] 8 19 + [commande] 21 28 +L10 + [integer*4] 8 16 + [ios] 18 20 +L11 + [1] 8 8 + [compteur] 18 25 +L12 + [1] 8 8 + [sortie] 18 23 +L13 + [1] 8 8 + [errone] 18 23 +L14 + [1] 8 8 + [conf] 18 21 +L15 + [1] 8 8 + [position_espace] 18 32 +L16 + [1] 8 8 + [debut_mot] 18 26 +L17 + [1] 8 8 + [fin_mot] 18 24 +L18 + [1] 8 8 + [nb_mots] 18 24 +L19 + [1] 8 8 + [nb_mots_max] 18 28 +L20 + [1] 8 8 + [fin_chaine] 18 27 +L21 + [1] 8 8 + [trouver_fin] 18 28 +L22 + [1] 8 8 + [num_caractere] 18 30 +L23 + [1] 8 8 + [action] 18 23 +L24 + [1] 8 8 + [premiere_lettre] 18 32 +L25 + [1] 8 8 + [derniere_lettre] 18 32 +L26 + [1] 8 8 + [intervalle_maj_min] 18 35 +L27 + [1] 8 8 + [apres_maj] 18 26 +L28 + [1] 8 8 + [taille_colonne] 18 31 +L29 + [1] 8 8 + [taille_ligne] 18 29 +L30 + [1] 8 8 + [lignes_desc] 18 28 +L32 + [parameter] 8 16 + [nb_mots_max] 18 28 + [=] 30 30 + [9] 32 32 + [ !une saisie correcte ne contient [ 35 89 +L33 + [!elle en contient 9, alors la sais[ 1 59 +L34 + [parameter] 8 16 + [errone] 18 23 + [=] 25 25 + [1] 27 27 +L35 + [parameter] 8 16 + [sortie] 18 23 + [=] 25 25 + [-] 27 27 + [1] 29 29 +L36 + [parameter] 8 16 + [action] 18 23 + [=] 25 25 + [1] 27 27 + [ !il s'agit du 1er mot de la chain[ 31 78 +L37 + [parameter] 8 16 + [premiere_lettre] 18 32 + [=] 34 34 + [1] 36 36 + [ !correspond a la 1ere lettre d'un[ 40 76 +L38 + [parameter] 8 16 + [derniere_lettre] 18 32 + [=] 34 34 + [18] 36 37 + [ !correspond a la derniere lettre [ 41 81 +L39 + [parameter] 8 16 + [intervalle_maj_min] 18 35 + [=] 37 37 + [32] 39 40 + [ !nombre separant un meme caracter[ 44 77 +L40 + [!minuscule de son majuscule] 1 27 +L41 + [parameter] 8 16 + [apres_maj] 18 26 + [=] 28 28 + [96] 30 31 + [ !correspond au dernier caractere [ 35 80 +L42 + [parameter] 8 16 + [taille_colonne] 18 31 + [=] 33 33 + [7] 35 35 +L43 + [parameter] 8 16 + [taille_ligne] 18 29 + [=] 31 31 + [12] 33 34 +L44 + [parameter] 8 16 + [lignes_desc] 18 28 + [=] 30 30 + [11] 32 33 +L46 + [character*19] 9 20 + [n] 22 22 + [taille_colonne] 24 37 + [taille_ligne] 39 50 +L47 + [character*19] 8 19 + [mots_commande] 21 33 + [nb_mots_max] 35 45 +L48 + [character*60] 8 19 + [desc] 21 24 + [lignes_desc] 26 36 +L50 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' '] 19 21 +L51 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' ---------------------------[ 19 79 +L52 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' | bonjour, et bienvenue dan[ 19 79 +L53 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' ---------------------------[ 19 79 +L54 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' '] 19 21 +L55 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' '] 19 21 +L56 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' voici un rappel des fonctions di[ 19 83 +L57 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' '] 19 21 +L58 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' _ task pour creer une tache (e[ 19 83 +L59 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' '] 19 21 +L60 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' _ show pour voir la descriptio[ 19 74 +L61 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' '] 19 21 +L62 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' _ remove pour enlever une tach[ 19 76 +L63 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' '] 19 21 +L64 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' _ clear pour effacer le dashbo[ 19 69 +L65 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' '] 19 21 +L66 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' _ cancel, done, todo pour modi[ 19 99 +L67 + [write] 8 12 + [*] 14 14 + [*] 16 16 + [' '] 19 21 +L69 + [! la boucle de sortie pour quitter[ 1 57 +L70 + [ios] 18 20 + [.ne.] 22 25 + [sortie] 27 32 +L72 + [! initialisons les variables, afin[ 1 95 +L73 + [position_espace] 16 30 + [=] 32 32 + [0] 34 34 +L74 + [debut_mot] 16 24 + [=] 26 26 + [0] 28 28 +L75 + [fin_mot] 16 22 + [=] 24 24 + [0] 26 26 +L76 + [nb_mots] 16 22 + [=] 24 24 + [0] 26 26 +L77 + [fin_chaine] 16 25 + [=] 27 27 + [0] 29 29 +L79 + [! initialisons aussi le tableau de[ 1 49 +L80 + [compteur] 19 26 + [=] 28 28 + [action] 30 35 + [nb_mots_max] 38 48 +L81 + [mots_commande] 24 36 + [compteur] 39 46 + [=] 49 49 + [' '] 51 53 +L84 + [! appelons le sous prgramme qui ge[ 1 85 +L85 + [!l'utilisateur le demande] 1 25 +L86 + [call] 16 19 + [saisie] 21 26 + [commande] 28 35 + [ios] 38 40 +L88 + [ios] 20 22 + [.eq.] 24 27 + [0] 29 29 + [then] 32 35 +L90 + [! trouvons la fin de la chaine] 1 30 +L91 + [fin_chaine] 24 33 + [=] 35 35 + [trouver_fin] 37 47 + [commande] 50 57 +L92 + [compteur] 24 31 + [=] 33 33 + [1] 35 35 +L93 + [position_espace] 34 48 + [.lt.] 50 53 + [fin_chaine] 55 64 + [.and.] 66 70 + [nb_mots] 72 78 + [.lt.] 80 83 + [nb_mots_max] 85 95 +L94 + [debut_mot] 32 40 + [=] 42 42 + [position_espace] 44 58 + [+] 60 60 + [1] 62 62 +L96 + [! decoupons les mots] 1 20 +L97 + [position_espace] 32 46 + [=] 48 48 + [position_espace] 50 64 + [+] 66 66 + [index] 68 72 + [commande] 75 82 + [debut_mot:] 85 94 + [' '] 98 100 +L98 + [fin_mot] 32 38 + [=] 40 40 + [position_espace] 42 56 + [-] 58 58 + [1] 60 60 +L100 + [! ensuite on les enregistre dans m[ 1 46 +L101 + [mots_commande] 32 44 + [compteur] 47 54 + [=] 57 57 + [commande] 59 66 + [debut_mot] 69 77 + [:] 79 79 + [fin_mot] 81 87 +L103 + [! comptons les mots] 1 19 +L104 + [mots_commande] 36 48 + [compteur] 51 58 + [.ne.] 61 64 + [' '] 66 68 + [then] 71 74 +L105 + [nb_mots] 40 46 + [=] 48 48 + [nb_mots] 50 56 + [+] 58 58 + [1] 60 60 +L106 + [compteur] 40 47 + [=] 49 49 + [compteur] 51 58 + [+] 60 60 + [1] 62 62 +L110 + [! le programme ne doit pas tenir c[ 1 81 +L111 + [!dont est ecrit le mot, il sera mi[ 1 48 +L112 + [compteur] 27 34 + [=] 36 36 + [1] 38 38 + [nb_mots] 41 47 +L113 + [num_caractere] 35 47 + [=] 49 49 + [premiere_lettre] 51 65 + [derniere_lettre] 68 82 +L114 + [ichar] 44 48 + [mots_commande] 50 62 + [compteur] 65 72 + [num_caractere:num_caractere] 75 101 +L115 + [1] 8 8 + [.gt.] 10 13 + [apres_maj] 15 23 + [then] 26 29 +L116 + [mots_commande] 48 60 + [compteur] 63 70 + [num_caractere:num_caractere] 73 99 + [=] 102 102 +L117 + [1] 8 8 + [char] 10 13 + [ichar] 15 19 + [mots_commande] 21 33 + [compteur] 36 43 + [num_caractere:num_caractere] 46 72 + [-] 76 76 + [intervalle_maj_min] 78 95 +L122 + [!! affichons les mots (provisoire)] 1 34 +L123 + [!! do compteur[ 1 47 +L124 + [!! wri[ 1 82 +L125 + [!! end do] 1 29 +L126 + [!!] 1 2 +L127 + [!! testons si le mot est bien en m[ 1 61 +L128 + [!! write(*,*) [ 1 79 +L131 + [! si la commande contient plus de [ 1 67 +L133 + [nb_mots] 28 34 + [.eq.] 36 39 + [nb_mots_max] 41 51 + [then] 54 57 +L134 + [write] 32 36 + [*] 38 38 + [*] 40 40 + [' '] 43 45 +L135 + [write] 32 36 + [*] 38 38 + [*] 40 40 + ['err> trop de mot, veuillez ressai[ 43 80 +L136 + [else] 24 27 +L138 + [! maintenant, en fonction du premi[ 1 93 +L139 + [mots_commande] 36 48 + [action] 51 56 + [.eq.] 59 62 + ['task'] 64 69 + [then] 72 75 +L140 + [call] 40 43 + [tache] 45 49 + [mots_commande] 51 63 + [desc] 66 69 + [n] 72 72 +L141 + [else] 32 35 + [mots_commande] 41 53 + [action] 56 61 + [.eq.] 64 67 + ['show'] 69 74 + [then] 77 80 +L142 + [! [ 1 81 +L143 + [call] 40 43 + [show] 45 48 + [mots_commande] 50 62 + [n] 65 65 +L144 + [else] 32 35 + [mots_commande] 41 53 + [action] 56 61 + [.eq.] 64 67 + ['remove'] 69 76 + [then] 79 82 +L145 + [! [ 1 83 +L146 + [call] 40 43 + [remove] 45 50 + [mots_commande] 52 64 + [desc] 67 70 + [n] 73 73 +L147 + [else] 32 35 + [mots_commande] 41 53 + [action] 56 61 + [.eq.] 64 67 + ['clear'] 69 75 + [then] 78 81 +L148 + [! [ 1 82 +L149 + [call] 40 43 + [clear] 45 49 + [mots_commande] 51 63 + [n] 66 66 +L150 + [else] 32 35 + [mots_commande] 41 53 + [action] 56 61 + [.eq.] 64 67 + ['cancel'] 69 76 + [then] 79 82 +L151 + [! [ 1 83 +L152 + [call] 40 43 + [cancel] 45 50 + [mots_commande] 52 64 + [n] 67 67 +L153 + [else] 32 35 + [mots_commande] 41 53 + [action] 56 61 + [.eq.] 64 67 + ['done'] 69 74 + [then] 77 80 +L154 + [! [ 1 81 +L155 + [call] 40 43 + [done] 45 48 + [mots_commande] 50 62 + [n] 65 65 +L156 + [else] 32 35 + [mots_commande] 41 53 + [action] 56 61 + [.eq.] 64 67 + ['todo'] 69 74 + [then] 77 80 +L157 + [! [ 1 81 +L158 + [call] 40 43 + [todo] 45 48 + [mots_commande] 50 62 + [n] 65 65 +L159 + [else] 32 35 +L160 + [write] 40 44 + [*] 46 46 + [*] 48 48 + [' '] 51 53 +L161 + [write] 40 44 + [*] 46 46 + [*] 48 48 + ['l'] 51 53 + ['action suivante n'] 54 72 + ['a pas ete'] 73 83 +L162 + [1] 8 8 + [' comprise: '] 10 22 + [mots_commande] 25 37 + [action] 40 45 +EOF