JaroslavTulach: /* Java */ - 2018-12-22 05:47:18

Java

←Older revision Revision as of 05:47, 22 December 2018
Line 9: Line 9:
The [[NetBeans]] project is using its [[netbeans:SigTest|SigTest]] - a slight extension to classical [[JDK]] sigtest tool with an excellent integration to [[Maven]] - see [https://github.com/jtulach/netbeans-apitest GitHub repository] for details.
The [[NetBeans]] project is using its [[netbeans:SigTest|SigTest]] - a slight extension to classical [[JDK]] sigtest tool with an excellent integration to [[Maven]] - see [https://github.com/jtulach/netbeans-apitest GitHub repository] for details.
-
The '''sigtest''' is the official [http://openjdk.dev.java.net OpenJDK] tool and since version 2.1 (which has been release in Mar 2009) it supports also [[BackwardCompatibility]] tests. We run the tests daily to ensure that our [[API]] are still binary compatible and whether our [[API]]s are changing intentionally and not accidentally. This is example of one of '''sigtest''' reports:
+
The '''sigtest''' is the official [http://openjdk.java.net OpenJDK] tool and since version 2.1 (which has been release in Mar 2009) it supports also [[BackwardCompatibility]] tests. We run the tests daily to ensure that our [[API]] are still binary compatible and whether our [[API]]s are changing intentionally and not accidentally. This is example of one of '''sigtest''' reports:
<source lang="text">
<source lang="text">

JaroslavTulach: /* Java */ - 2018-12-22 05:46:41

Java

←Older revision Revision as of 05:46, 22 December 2018
Line 7: Line 7:
=== Java ===
=== Java ===
-
The [[NetBeans]] project is using its [[netbeans:SigTest|SigTest]] - a slight extension to [http://sigtest.dev.java.net sigtest] open source testing tool with an excellent integration to [[Maven]] - see [[netbeans:SigTest]] for details.
+
The [[NetBeans]] project is using its [[netbeans:SigTest|SigTest]] - a slight extension to classical [[JDK]] sigtest tool with an excellent integration to [[Maven]] - see [https://github.com/jtulach/netbeans-apitest GitHub repository] for details.
The '''sigtest''' is the official [http://openjdk.dev.java.net OpenJDK] tool and since version 2.1 (which has been release in Mar 2009) it supports also [[BackwardCompatibility]] tests. We run the tests daily to ensure that our [[API]] are still binary compatible and whether our [[API]]s are changing intentionally and not accidentally. This is example of one of '''sigtest''' reports:
The '''sigtest''' is the official [http://openjdk.dev.java.net OpenJDK] tool and since version 2.1 (which has been release in Mar 2009) it supports also [[BackwardCompatibility]] tests. We run the tests daily to ensure that our [[API]] are still binary compatible and whether our [[API]]s are changing intentionally and not accidentally. This is example of one of '''sigtest''' reports:

JaroslavTulach: /* Java */ - 2016-07-15 17:51:58

Java

←Older revision Revision as of 17:51, 15 July 2016
Line 7: Line 7:
=== Java ===
=== Java ===
-
The [[NetBeans]] project is using its [[netbeans:APITest|slight extension]] to [http://sigtest.dev.java.net sigtest] open source testing tool. The '''sigtest''' is the official [http://openjdk.dev.java.net OpenJDK] tool and since version 2.1 (which has been release in Mar 2009) it supports also [[BackwardCompatibility]] tests. We run the tests daily to ensure that our [[API]] are still binary compatible and whether our [[API]]s are changing intentionally and not accidentally. This is example of one of '''sigtest''' reports:
+
The [[NetBeans]] project is using its [[netbeans:SigTest|SigTest]] - a slight extension to [http://sigtest.dev.java.net sigtest] open source testing tool with an excellent integration to [[Maven]] - see [[netbeans:SigTest]] for details.
 +
 
 +
The '''sigtest''' is the official [http://openjdk.dev.java.net OpenJDK] tool and since version 2.1 (which has been release in Mar 2009) it supports also [[BackwardCompatibility]] tests. We run the tests daily to ensure that our [[API]] are still binary compatible and whether our [[API]]s are changing intentionally and not accidentally. This is example of one of '''sigtest''' reports:
<source lang="text">
<source lang="text">

JaroslavTulach: /* Signature Testing Tools */ - 2015-11-20 17:12:06

Signature Testing Tools

←Older revision Revision as of 17:12, 20 November 2015
Line 41: Line 41:
--[[User:JaroslavTulach|JaroslavTulach]] 19:08, 9 August 2009 (UTC)
--[[User:JaroslavTulach|JaroslavTulach]] 19:08, 9 August 2009 (UTC)
 +
 +
 +
== Introducing [[TruffleSigtest|Signature Tests]] into Your Project Workflow ==
 +
 +
{{:TruffleSigtest}}
[[Category:Tools]] [[Category:APIDesignPatterns:Test]]
[[Category:Tools]] [[Category:APIDesignPatterns:Test]]

JaroslavTulach at 17:06, 20 November 2015 - 2015-11-20 17:06:57

←Older revision Revision as of 17:06, 20 November 2015
Line 1: Line 1:
-
Since the rise of [[XP]] and other [[Agile]] methodologies testing become more and more popular. Not only among dedicated quality departments, but also among developers. It is not surprising that these days a successful projects is not just code, but also set of tests to verify that the release is good enough and that the project moves into correct direction.
+
Since the rise of [[XP]] and other [[Agile]] methodologies testing become more and more popular. Not only among dedicated quality departments, but also among developers. It is not surprising that these days a successful projects is not just code, but also set of tests to verify that the release is good enough and that the project moves in the right direction.
The [[API Design]] is not exceptional in this aspect. Proper [[API Design]] requires testing and verification. The goal when designing an [[API]] is to prevent the [[Amoeba Model|amoeba shaking effect]] - e.g. prevent each new release to completely destabilize existing usages. This requires standard unit testing as well, as something special - testing for [[binary compatibility]].
The [[API Design]] is not exceptional in this aspect. Proper [[API Design]] requires testing and verification. The goal when designing an [[API]] is to prevent the [[Amoeba Model|amoeba shaking effect]] - e.g. prevent each new release to completely destabilize existing usages. This requires standard unit testing as well, as something special - testing for [[binary compatibility]].

JaroslavTulach: /* Java */ - 2015-11-20 17:05:47

Java

←Older revision Revision as of 17:05, 20 November 2015
Line 7: Line 7:
=== Java ===
=== Java ===
-
The [[NetBeans]] project is using its [http://wiki.netbeans.org/view/APITests slight extension] to [http://sigtest.dev.java.net sigtest] open source testing tool. The '''sigtest''' is the official [http://openjdk.dev.java.net OpenJDK] tool and since version 2.1 (which has been release in Mar 2009) it supports also [[BackwardCompatibility]] tests. We run the tests daily to ensure that our [[API]] are still binary compatible and whether our [[API]]s are changing intentionally and not accidentally. This is example of one of '''sigtest''' reports:
+
The [[NetBeans]] project is using its [[netbeans:APITest|slight extension]] to [http://sigtest.dev.java.net sigtest] open source testing tool. The '''sigtest''' is the official [http://openjdk.dev.java.net OpenJDK] tool and since version 2.1 (which has been release in Mar 2009) it supports also [[BackwardCompatibility]] tests. We run the tests daily to ensure that our [[API]] are still binary compatible and whether our [[API]]s are changing intentionally and not accidentally. This is example of one of '''sigtest''' reports:
<source lang="text">
<source lang="text">

89.178.26.228: /* Signature Testing Tools */ updated links to linuxbase.org, that came back online - 2012-04-12 20:23:46

Signature Testing Tools: updated links to linuxbase.org, that came back online

←Older revision Revision as of 20:23, 12 April 2012
Line 26: Line 26:
Existing alternatives to '''sigtest''':
Existing alternatives to '''sigtest''':
* [http://clirr.sourceforge.net/ Clirr]
* [http://clirr.sourceforge.net/ Clirr]
-
* [http://forge.ispras.ru/projects/java-api-compliance-checker/files Java API Compliance Checker]
+
* [http://ispras.linuxbase.org/index.php/Java_API_Compliance_Checker Java API Compliance Checker]
Sample usage:
Sample usage:
-
japi-compliance-checker -lib NAME -d1 OLD.jar -d2 NEW.jar
+
japi-compliance-checker -lib NAME -old OLD.jar -new NEW.jar
=== C/C++ ===
=== C/C++ ===
-
There is a backward binary compatibility checker for shared libraries in C/C++. An anonymous coward just provided a link to [http://forge.ispras.ru/projects/abi-compliance-checker/files API compliance checker].
+
There is a backward binary compatibility checker for shared libraries in C/C++. An anonymous coward just provided a link to [http://ispras.linuxbase.org/index.php/ABI_compliance_checker API compliance checker].
It is good that [[C]] world gets such a useful tool, just realize the difference with [[Java]]. Adding new field into a '''struct''' deserves a warning(!) as it may be incompatible for everyone who embeds such structure inside own '''struct'''. Adding new virtual method in [[BackwardCompatibility|backward compatible]] way is almost impossible, as far as I can see.
It is good that [[C]] world gets such a useful tool, just realize the difference with [[Java]]. Adding new field into a '''struct''' deserves a warning(!) as it may be incompatible for everyone who embeds such structure inside own '''struct'''. Adding new virtual method in [[BackwardCompatibility|backward compatible]] way is almost impossible, as far as I can see.

95.27.15.134: /* Signature Testing Tools */ notes about alternative Java tools - 2012-02-11 14:36:37

Signature Testing Tools: notes about alternative Java tools

←Older revision Revision as of 14:36, 11 February 2012
Line 4: Line 4:
== Signature Testing Tools ==
== Signature Testing Tools ==
 +
 +
=== Java ===
The [[NetBeans]] project is using its [http://wiki.netbeans.org/view/APITests slight extension] to [http://sigtest.dev.java.net sigtest] open source testing tool. The '''sigtest''' is the official [http://openjdk.dev.java.net OpenJDK] tool and since version 2.1 (which has been release in Mar 2009) it supports also [[BackwardCompatibility]] tests. We run the tests daily to ensure that our [[API]] are still binary compatible and whether our [[API]]s are changing intentionally and not accidentally. This is example of one of '''sigtest''' reports:
The [[NetBeans]] project is using its [http://wiki.netbeans.org/view/APITests slight extension] to [http://sigtest.dev.java.net sigtest] open source testing tool. The '''sigtest''' is the official [http://openjdk.dev.java.net OpenJDK] tool and since version 2.1 (which has been release in Mar 2009) it supports also [[BackwardCompatibility]] tests. We run the tests daily to ensure that our [[API]] are still binary compatible and whether our [[API]]s are changing intentionally and not accidentally. This is example of one of '''sigtest''' reports:
Line 21: Line 23:
Simple and useful. I cannot imagine [[API]] design without such verification tool. Thanks the ''sigtest'' team for releasing such mature 2.1 version!
Simple and useful. I cannot imagine [[API]] design without such verification tool. Thanks the ''sigtest'' team for releasing such mature 2.1 version!
 +
 +
Existing alternatives to '''sigtest''':
 +
* [http://clirr.sourceforge.net/ Clirr]
 +
* [http://forge.ispras.ru/projects/java-api-compliance-checker/files Java API Compliance Checker]
 +
 +
Sample usage:
 +
 +
japi-compliance-checker -lib NAME -d1 OLD.jar -d2 NEW.jar
=== C/C++ ===
=== C/C++ ===

95.27.15.134: /* C/C++ */ updated link, old link is under maintenance (linux.com related site) for unknown time. - 2012-02-11 14:25:34

C/C++: updated link, old link is under maintenance (linux.com related site) for unknown time.

←Older revision Revision as of 14:25, 11 February 2012
Line 24: Line 24:
=== C/C++ ===
=== C/C++ ===
-
There is a backward binary compatibility checker for shared libraries in C/C++. An anonymous coward just provided a link to [http://ispras.linuxfoundation.org/index.php/ABI_compliance_checker API compliance checker].
+
There is a backward binary compatibility checker for shared libraries in C/C++. An anonymous coward just provided a link to [http://forge.ispras.ru/projects/abi-compliance-checker/files API compliance checker].
It is good that [[C]] world gets such a useful tool, just realize the difference with [[Java]]. Adding new field into a '''struct''' deserves a warning(!) as it may be incompatible for everyone who embeds such structure inside own '''struct'''. Adding new virtual method in [[BackwardCompatibility|backward compatible]] way is almost impossible, as far as I can see.
It is good that [[C]] world gets such a useful tool, just realize the difference with [[Java]]. Adding new field into a '''struct''' deserves a warning(!) as it may be incompatible for everyone who embeds such structure inside own '''struct'''. Adding new virtual method in [[BackwardCompatibility|backward compatible]] way is almost impossible, as far as I can see.

JaroslavTulach at 06:49, 5 August 2010 - 2010-08-05 06:49:02

←Older revision Revision as of 06:49, 5 August 2010
Line 32: Line 32:
--[[User:JaroslavTulach|JaroslavTulach]] 19:08, 9 August 2009 (UTC)
--[[User:JaroslavTulach|JaroslavTulach]] 19:08, 9 August 2009 (UTC)
-
[[Category:Tools]]
+
[[Category:Tools]] [[Category:APIDesignPatterns:Test]]