test to expose missing dependencies

Patch by eevans; reviewed by Dave Brosius for CASSANDRA-3665
This commit is contained in:
Eric Evans 2012-01-26 16:02:34 -06:00
parent 2a1ec27e26
commit 32075c4aec
2 changed files with 73 additions and 0 deletions

View File

@ -1038,6 +1038,31 @@ url=${svn.entry.url}?pathrev=${svn.entry.commit.revision}
</sequential>
</macrodef>
<!--
This test target is a bit different. It's purpose is to exercise the
clientutil jar in order to expose any new dependencies. For that
reason we use the classes from the jar, and a carefully constructed
classpath which only contains what we expect users to need.
-->
<target name="test-clientutil-jar" depends="build-test,jar" description="Test clientutil jar">
<junit>
<test name="org.apache.cassandra.cql.jdbc.ClientUtilsTest" />
<formatter type="brief" usefile="false" />
<classpath>
<pathelement location="${test.classes}" />
<pathelement location="${build.dir}/${ant.project.name}-clientutil-${version}.jar" />
<fileset dir="${build.dir.lib}">
<include name="**/junit*.jar" />
</fileset>
<fileset dir="${build.lib}">
<include name="**/guava*.jar" />
<include name="**/commons-lang*.jar" />
</fileset>
</classpath>
</junit>
</target>
<target name="test" depends="build-test" description="Execute unit tests">
<testmacro suitename="unit" inputdir="${test.unit.src}" timeout="60000">
<jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>

View File

@ -0,0 +1,48 @@
package org.apache.cassandra.cql.jdbc;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.ByteBuffer;
import java.sql.Date;
import java.util.UUID;
import org.apache.cassandra.utils.UUIDGen;
import org.junit.Test;
public class ClientUtilsTest
{
/** Exercises the classes in the clientutil jar to expose missing dependencies. */
@Test
public void test() throws UnknownHostException
{
JdbcAscii.instance.compose(JdbcAscii.instance.decompose("string"));
JdbcBoolean.instance.compose(JdbcBoolean.instance.decompose(true));
JdbcBytes.instance.compose(JdbcBytes.instance.decompose(ByteBuffer.wrap("string".getBytes())));
JdbcDate.instance.compose(JdbcDate.instance.decompose(new Date(System.currentTimeMillis())));
JdbcDecimal.instance.compose(JdbcDecimal.instance.decompose(new BigDecimal(1)));
JdbcDouble.instance.compose(JdbcDouble.instance.decompose(new Double(1.0d)));
JdbcFloat.instance.compose(JdbcFloat.instance.decompose(new Float(1.0f)));
JdbcInt32.instance.compose(JdbcInt32.instance.decompose(1));
JdbcInteger.instance.compose(JdbcInteger.instance.decompose(new BigInteger("1")));
JdbcLong.instance.compose(JdbcLong.instance.decompose(1L));
JdbcUTF8.instance.compose(JdbcUTF8.instance.decompose("string"));
// UUIDGen
UUID uuid = UUIDGen.makeType1UUIDFromHost(InetAddress.getLocalHost());
JdbcTimeUUID.instance.compose(JdbcTimeUUID.instance.decompose(uuid));
JdbcUUID.instance.compose(JdbcUUID.instance.decompose(uuid));
JdbcLexicalUUID.instance.compose(JdbcLexicalUUID.instance.decompose(uuid));
// Raise a MarshalException
try
{
JdbcLexicalUUID.instance.getString(ByteBuffer.wrap("notauuid".getBytes()));
}
catch (MarshalException me)
{
// Success
}
}
}