From 64615f17a8c63f692159235e169dbdd14d30b737 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Tue, 13 May 2014 13:06:19 +0200
Subject: Unit Test: Modularize Semantic Version Test / Fix 'excludes'

Refactor base semjar unit test class into
com.jogamp.junit.util.VersionSemanticsUtil, part of new gluegen-test-util.jar.

The new gluegen-test-util.jar shall be used by all other modules to test versioning.
---
 .../jogamp/common/util/TestVersionSemantics.java   | 98 ++++++----------------
 1 file changed, 25 insertions(+), 73 deletions(-)

(limited to 'src/junit/com/jogamp/common/util/TestVersionSemantics.java')

diff --git a/src/junit/com/jogamp/common/util/TestVersionSemantics.java b/src/junit/com/jogamp/common/util/TestVersionSemantics.java
index a4f33b2..dba42b5 100644
--- a/src/junit/com/jogamp/common/util/TestVersionSemantics.java
+++ b/src/junit/com/jogamp/common/util/TestVersionSemantics.java
@@ -29,27 +29,21 @@ package com.jogamp.common.util;
 
 import java.io.File;
 import java.io.IOException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Set;
 
-import org.junit.Assert;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
 import org.junit.runners.MethodSorters;
 import org.osjava.jardiff.DiffCriteria;
 import org.osjava.jardiff.SimpleDiffCriteria;
-import org.semver.Comparer;
 import org.semver.Delta;
-import org.semver.Dumper;
-import org.semver.Delta.Difference;
 
 import com.jogamp.common.GlueGenVersion;
-import com.jogamp.common.util.IOUtil;
-import com.jogamp.common.util.JarUtil;
 import com.jogamp.common.util.VersionNumberString;
+import com.jogamp.junit.util.JunitTracer;
+import com.jogamp.junit.util.VersionSemanticsUtil;
 
 /**
  * Compares a defined previous version with the current version.
@@ -70,80 +64,38 @@ import com.jogamp.common.util.VersionNumberString;
  * @throws URISyntaxException
  */
 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class TestVersionSemantics {
-    public static final String jarFile = "gluegen-rt.jar";
-    public static final VersionNumberString preVersion = new VersionNumberString("2.1.5");
-    public static final Delta.CompatibilityType expectedCompatibilityType = Delta.CompatibilityType.BACKWARD_COMPATIBLE_USER;
+public class TestVersionSemantics extends JunitTracer {
+    static final String jarFile = "gluegen-rt.jar";
+    static final VersionNumberString preVersionNumber = new VersionNumberString("2.1.5");
+    static final Delta.CompatibilityType expectedCompatibilityType = Delta.CompatibilityType.BACKWARD_COMPATIBLE_USER;
+
+    static final DiffCriteria diffCriteria = new SimpleDiffCriteria();
+    // static final DiffCriteria diffCriteria = new PublicDiffCriteria();
+
+    static final JogampVersion curVersion = GlueGenVersion.getInstance();
+    static final VersionNumberString curVersionNumber = new VersionNumberString(curVersion.getImplementationVersion());
+
+    static final Set<String> excludes;
+    static {
+        excludes = new HashSet<String>();
+        excludes.add("jogamp.common.**");
+        excludes.add("jogamp.android.**");
+    }
 
     @Test
-    public void testVersion01() throws IllegalArgumentException, IOException, URISyntaxException {
-
-        final GlueGenVersion glueGenVersion = GlueGenVersion.getInstance();
-        final VersionNumberString curVersion = new VersionNumberString(glueGenVersion.getImplementationVersion());
-
-        final File previousJar = new File("lib/v"+preVersion.getVersionString()+"/"+jarFile);
-
-        final ClassLoader rootCL = TestVersionSemantics.class.getClassLoader();
-
-        // Get containing JAR file "TestJarsInJar.jar" and add it to the TempJarCache
-        final URI currentJarURI = JarUtil.getJarSubURI(GlueGenVersion.class.getName(), rootCL);
-        final String currentJarLocS = IOUtil.decodeURIIfFilePath(currentJarURI);
-        final File currentJar = new File(currentJarLocS);
-
-        final DiffCriteria diffCriteria = new SimpleDiffCriteria();
-
-        final Set<String> includes = new HashSet<String>();
+    public void testVersionLatest() throws IllegalArgumentException, IOException, URISyntaxException {
 
-        final Set<String> excludes = new HashSet<String>();
-        excludes.add("jogamp/**");
+        final File previousJar = new File("lib/v"+preVersionNumber.getVersionString()+"/"+jarFile);
 
-        final Comparer comparer = new Comparer(diffCriteria, previousJar, currentJar, includes, excludes);
-        final Delta delta = comparer.diff();
+        final ClassLoader currentCL = TestVersionSemantics.class.getClassLoader();
 
-        //Validates that computed and provided compatibility type are compatible.
-        final Delta.CompatibilityType detectedCompatibilityType = delta.computeCompatibilityType();
-        final int comp = detectedCompatibilityType.compareTo(expectedCompatibilityType);
-        final boolean compOK = 0 >= comp;
-        final String compS;
-        if( 0 > comp ) {
-            compS = "< ";
-        } else if ( 0 == comp ) {
-            compS = "==";
-        } else {
-            compS = "> ";
-        }
-
-        System.err.println("GlueGen Semantic Versioning Test");
-        System.err.println("Previous version:   "+preVersion+" - "+previousJar.toString());
-        System.err.println("Current  version:   "+curVersion+" - "+currentJar.toString());
-        System.err.println("Compat. expected:   "+expectedCompatibilityType);
-        System.err.println("Compat. pre -> cur: "+detectedCompatibilityType);
-        System.err.println("Compat. result:     detected "+compS+" expected -> "+(compOK ? "OK" : "ERROR"));
-
-        final Set<Difference> diffs = delta.getDifferences();
-        System.err.println(diffs.size()+" differences!");
-        int diffI = 0;
-        for(final Iterator<Difference> iter = diffs.iterator(); iter.hasNext(); diffI++) {
-            final Difference diff = iter.next();
-            System.err.printf("Diff %4d: %-11s in class %s%n", diffI, diff.getClass().getSimpleName(), diff.getClassName());
-        }
-        Dumper.dump(delta);
-
-        Assert.assertTrue("Current version "+curVersion+" is "+compS+" of previous version "+preVersion, compOK);
-
-        /***
-        //Provide version number for previous and current Jar files.
-        final Version previous = Version.parse(...);
-        final Version current = Version.parse(...);
-
-        //Validates that current version number is valid based on semantic versioning principles.
-        final boolean compatible = delta.validate(previous, current);
-        */
+        VersionSemanticsUtil.testVersion(diffCriteria, expectedCompatibilityType,
+                                         previousJar, preVersionNumber,
+                                         curVersion.getClass(), currentCL, curVersionNumber, excludes);
     }
 
     public static void main(String args[]) throws IOException {
         String tstname = TestVersionSemantics.class.getName();
         org.junit.runner.JUnitCore.main(tstname);
     }
-
 }
-- 
cgit v1.2.3