From 6c6963abe8f0513a19bf61a8c9055563ff245b1c Mon Sep 17 00:00:00 2001 From: Szabolcs Vasas Date: Fri, 20 Jul 2018 16:56:47 +0200 Subject: [PATCH] SQOOP-3347: Make verify() more generic in AvroTestUtils (Boglarka Egyed via Szabolcs Vasas) --- .../avro/AvroImportForNumericTypesTest.java | 1 + .../manager/hsqldb/TestHsqldbAvroPadding.java | 1 + .../org/apache/sqoop/testutil/AvroTestUtils.java | 16 ++++++++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/test/org/apache/sqoop/importjob/avro/AvroImportForNumericTypesTest.java b/src/test/org/apache/sqoop/importjob/avro/AvroImportForNumericTypesTest.java index e04caf7c..ff13dc3b 100644 --- a/src/test/org/apache/sqoop/importjob/avro/AvroImportForNumericTypesTest.java +++ b/src/test/org/apache/sqoop/importjob/avro/AvroImportForNumericTypesTest.java @@ -204,6 +204,7 @@ public void testAvroImportWithDefaultPrecisionAndScale() throws IOException { } private void verify() { + AvroTestUtils.registerDecimalConversionUsageForVerification(); AvroTestUtils.verify(configuration.getExpectedResults(), getConf(), getTablePath()); } } diff --git a/src/test/org/apache/sqoop/manager/hsqldb/TestHsqldbAvroPadding.java b/src/test/org/apache/sqoop/manager/hsqldb/TestHsqldbAvroPadding.java index 7e42bf1e..bb7cae48 100644 --- a/src/test/org/apache/sqoop/manager/hsqldb/TestHsqldbAvroPadding.java +++ b/src/test/org/apache/sqoop/manager/hsqldb/TestHsqldbAvroPadding.java @@ -76,6 +76,7 @@ public void testAvroImportWithPadding() throws IOException { builder.withProperty("sqoop.avro.decimal_padding.enable", "true"); String[] args = builder.build(); runImport(args); + AvroTestUtils.registerDecimalConversionUsageForVerification(); AvroTestUtils.verify(AvroTestUtils.getExpectedResults(), getConf(), getTablePath()); } } diff --git a/src/test/org/apache/sqoop/testutil/AvroTestUtils.java b/src/test/org/apache/sqoop/testutil/AvroTestUtils.java index 75940bf1..04a8494a 100644 --- a/src/test/org/apache/sqoop/testutil/AvroTestUtils.java +++ b/src/test/org/apache/sqoop/testutil/AvroTestUtils.java @@ -25,6 +25,8 @@ import org.apache.avro.generic.GenericRecord; import org.apache.avro.io.DatumReader; import org.apache.avro.mapred.FsInput; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; @@ -37,6 +39,11 @@ public class AvroTestUtils { + private static final String OUTPUT_FILE_NAME = "part-m-00000.avro"; + + public static final Log LOG = LogFactory.getLog( + AvroTestUtils.class.getName()); + public static List getInputData() { List data = new ArrayList<>(); data.add(new String[]{"1", "'Aaron'", "1000000.05", "'engineering'"}); @@ -63,9 +70,13 @@ public static ArgumentArrayBuilder getBuilderForAvroPaddingTest(BaseSqoopTestCas .withOption("table", testCase.getTableName()); } - public static void verify(String[] expectedResults, Configuration conf, Path tablePath) { - Path outputFile = new Path(tablePath, "part-m-00000.avro"); + public static void registerDecimalConversionUsageForVerification() { GenericData.get().addLogicalTypeConversion(new Conversions.DecimalConversion()); + } + + public static void verify(String[] expectedResults, Configuration conf, Path tablePath) { + Path outputFile = new Path(tablePath, OUTPUT_FILE_NAME); + try (DataFileReader reader = read(outputFile, conf)) { GenericRecord record; if (!reader.hasNext() && expectedResults != null && expectedResults.length > 0) { @@ -78,6 +89,7 @@ record = reader.next(); } } catch (IOException ioe) { + LOG.error("Issue with verifying the output", ioe); throw new RuntimeException(ioe); } }