hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From N Keywal <nkey...@gmail.com>
Subject Re: [unit tests] small tests vs. others
Date Mon, 14 Nov 2011 20:25:37 GMT
That sounds perfect :-).

For JUnit, there is nothing specific I used the script provided with JUnit
(build_tests.sh).
For surefire, I had to use -DskipTests to get it installed, even before my
changes. Except this (!) it's pure standard maven.

Then there are two use cases:
- short term, we just need to change the versions and the repository list
in the .pom to see how it behaves.
- medium term (3/4 days) we should publish the category split, I created
4781 to put the .pom I am currently testing.

Thanks for your help!


On Mon, Nov 14, 2011 at 8:47 PM, Gary Helmling <ghelmling@gmail.com> wrote:

> Hi N,
>
> I can push up the modified surefire and junit build with appropriate
> versions.
>
> Is there anything special to either build that would complicate
> building with the supplied patches?  If not, then I can do the builds
> and push up the artifacts.  Then we coordinate the testing.  How does
> that sound?
>
> --gh
>
>
> On Mon, Nov 14, 2011 at 5:51 AM, N Keywal <nkeywal@gmail.com> wrote:
> > Hi Gary,
> >
> > The hbase specific versions for surefire & junit are ready (see
> HBASE-4763
> > for all the details).
> > Would it be possible to use your repository? What would you need from me?
> > I've never deployed anything in a maven repo. Surefire works with maven,
> so
> > it should be easy, JUnit does not, so there could be more work to do.
> >
> > I copy the dev list for information.
> >
> > Regards,
> >
> > N.
> >
> >
> > ---------- Forwarded message ----------
> > From: Gary Helmling <ghelmling@gmail.com>
> > Date: Thu, Oct 20, 2011 at 11:50 PM
> > Subject: Re: [unit tests] small tests vs. others
> > To: dev@hbase.apache.org
> >
> >
> > +1 on small/medium/large
> >
> > I have a test mvn repo up on people.apache.org that we can use for a
> > patched surefire build, if that helps.
> >
> >
> > On Thu, Oct 20, 2011 at 2:33 PM, Jonathan Gray <jgray@fb.com> wrote:
> >> +1 on small/medium/large.
> >>
> >>> -----Original Message-----
> >>> From: Todd Lipcon [mailto:todd@cloudera.com]
> >>> Sent: Thursday, October 20, 2011 1:49 PM
> >>> To: dev@hbase.apache.org
> >>> Subject: Re: [unit tests] small tests vs. others
> >>>
> >>> +1 on separating into small/medium/large. One of the requirements of
> >>> "small" should be that it can run parallel with other tests and in
> nofork
> >>> mode.
> >>>
> >>> See SUREFIRE-329 for the necessary surefire patch. Until that's
> >>> integrated
> >>> upstream we'd have to have our own patched surefire :(
> >>>
> >>> -Todd
> >>>
> >>> On Thu, Oct 20, 2011 at 1:46 PM, N Keywal <nkeywal@gmail.com> wrote:
> >>> > Hi,
> >>> >
> >>> > I've done a stat on the tests we have. Many of them are actually
> quite
> >>> > simple: There are 226 test classes in HBase.  100  of them does not
> >>> > use a cluster, and takes less than 2 seconds to execute. 24 do not
> use
> >>> > a cluster but need between 2 and 40 seconds.
> >>> >
> >>> > I tried to execute these with different maven settings.
> >>> > fork: once or always, i.e. all the tests are executed in the same JVM
> >>> > or there is a new JVM created for every test class parallel;
> >>> > deactivated or activated, with 3 threads and a per class
> >>> > parallelisation.
> >>> >
> >>> > The 100 tests executes for the whole maven stuff, including the
> >>> > initial dependency & task analysis fork always: 1m50s fork once:
30
> >>> > seconds
> >>> > parallel: 30s (=> no difference).
> >>> >
> >>> > It works quite well, except with TestLruBlockCache that I had to
> >>> > remove.
> >>> >
> >>> > I tried as well with the 24 'bigger' ones but no cluster, for the
> >>> > following
> >>> > results:
> >>> > fork always: 7m36s
> >>> > parallel: 2m32s: 3 times faster.
> >>> >
> >>> > However, I had to remove many of them, there are some conflicts that
> I
> >>> > have not solved (nor tried to).
> >>> >
> >>> > The fact that nearly 50% of the tests can be executed in 1 minutes
is
> >>> > interesting imho.
> >>> >
> >>> > That makes me wonder if we should try to get a separation of the
> tests
> >>> > in 3 parts, small/medium/large as of
> >>> >
> http://googletesting.blogspot.com/2009/07/software-testing-categorizat
> >>> > ion.html
> >>> >
> >>> > small would be:
> >>> > - less than two seconds, can be executed in the same jvm
> >>> > - all of them: less than 2 minute
> >>> > - no cluster, nothing that can break the environment
> >>> > - run by the developers as a part of the build
> >>> >
> >>> > medium:
> >>> > - less than 40 seconds
> >>> > - all of them: would last less than 30 minutes, ideally 15 minutes
> >>> > - run in an isolated jvm
> >>> > - run explicitly by the developers before submitting a fix
> >>> >
> >>> > large:
> >>> > - run in an isolated jvm
> >>> > - Should last less than 45minutes
> >>> > - run on the central built or explicitly by the developers
> >>> > - break the built when it fails.
> >>> >
> >>> > Only one issue: it's not directly possible with maven, but there are
> >>> > known workarounds :-)
> >>> >
> >>> >
> >>> > What do you think?
> >>> >
> >>> >
> >>> > Below the tests set for the 120 tests that seems to work altogether.
> >>> >
> >>> >
> >>> > mvn test
> >>> > -
> >>> Dtest=org.apache.hadoop.hbase.avro.TestAvroUtil,org.apache.hadoop.hba
> >>> >
> se.client.TestAttributes,org.apache.hadoop.hbase.client.TestGet,org.ap
> >>> >
> ache.hadoop.hbase.client.TestOperation,org.apache.hadoop.hbase.client.
> >>> >
> TestResult,org.apache.hadoop.hbase.client.TestScan,org.apache.hadoop.h
> >>> >
> >>> base.coprocessor.TestRegionObserverStacking,org.apache.hadoop.hbase.fi
> >>> >
> lter.TestBitComparator,org.apache.hadoop.hbase.filter.TestColumnPagina
> >>> >
> tionFilter,org.apache.hadoop.hbase.filter.TestDependentColumnFilter,or
> >>> > g.apache.hadoop.hbase.filter.TestFilterList,
> org.apache.hadoop.hbase.fi
> >>> >
> lter.TestInclusiveStopFilter,org.apache.hadoop.hbase.filter.TestPageFi
> >>> >
> lter,org.apache.hadoop.hbase.filter.TestParseFilter,org.apache.hadoop.
> >>> >
> hbase.filter.TestPrefixFilter,org.apache.hadoop.hbase.filter.TestRando
> >>> >
> >>> mRowFilter,org.apache.hadoop.hbase.filter.TestSingleColumnValueExclude
> >>> >
> Filter,org.apache.hadoop.hbase.filter.TestSingleColumnValueFilter,org.
> >>> >
> apache.hadoop.hbase.io.hfile.slab.TestSlabCache,org.apache.hadoop.hbas
> >>> >
> e.io.hfile.slab.TestSlab,org.apache.hadoop.hbase.io.hfile.TestBlockCac
> >>> >
> >>> heColumnFamilySummary,org.apache.hadoop.hbase.io.hfile.TestCachedBloc
> >>> k
> >>> >
> Queue,org.apache.hadoop.hbase.io.hfile.TestFixedFileTrailer,org.apache
> >>> >
> .hadoop.hbase.io.hfile.TestHFileReaderV1,org.apache.hadoop.hbase.io.hf
> >>> >
> ile.TestHFile,org.apache.hadoop.hbase.io.hfile.TestHFileWriterV2,org.a
> >>> >
> >>> pache.hadoop.hbase.io.hfile.TestReseekTo,org.apache.hadoop.hbase.io.hf
> >>> >
> ile.TestSeekTo,org.apache.hadoop.hbase.io.TestHalfStoreFileReader,org.
> >>> >
> >>> apache.hadoop.hbase.io.TestHbaseObjectWritable,org.apache.hadoop.hbas
> >>> e
> >>> >
> >>> .io.TestHeapSize,org.apache.hadoop.hbase.io.TestImmutableBytesWritable
> >>> >
> >>> ,org.apache.hadoop.hbase.mapreduce.TestSimpleTotalOrderPartitioner,org
> >>> >
> >>> .apache.hadoop.hbase.mapreduce.TestTableSplit,org.apache.hadoop.hbase
> >>> .
> >>> >
> >>> master.TestClockSkewDetection,org.apache.hadoop.hbase.master.TestDea
> >>> dS
> >>> >
> >>> erver,org.apache.hadoop.hbase.master.TestDefaultLoadBalancer,org.apach
> >>> >
> >>> e.hadoop.hbase.master.TestMasterStatusServlet,org.apache.hadoop.hbase.
> >>> >
> >>> metrics.TestMetricsMBeanBase,org.apache.hadoop.hbase.monitoring.Test
> >>> Me
> >>> >
> >>> moryBoundedLogMessageBuffer,org.apache.hadoop.hbase.monitoring.Test
> >>> Tas
> >>> >
> >>> kMonitor,org.apache.hadoop.hbase.regionserver.handler.TestCloseRegionH
> >>> >
> >>> andler,org.apache.hadoop.hbase.regionserver.TestCompactSelection,org.a
> >>> >
> pache.hadoop.hbase.regionserver.TestExplicitColumnTracker,org.apache.h
> >>> >
> >>> adoop.hbase.regionserver.TestHRegionInfo,org.apache.hadoop.hbase.regio
> >>> >
> >>> nserver.TestKeyValueHeap,org.apache.hadoop.hbase.regionserver.TestKey
> >>> V
> >>> >
> >>> alueScanFixture,org.apache.hadoop.hbase.regionserver.TestKeyValueSkipL
> >>> >
> >>> istSet,org.apache.hadoop.hbase.regionserver.TestMemStoreLAB,org.apach
> >>> e
> >>> >
> >>> .hadoop.hbase.regionserver.TestMinVersions,org.apache.hadoop.hbase.reg
> >>> >
> >>> ionserver.TestQueryMatcher,org.apache.hadoop.hbase.regionserver.TestRe
> >>> >
> gionSplitPolicy,org.apache.hadoop.hbase.regionserver.TestResettingCoun
> >>> >
> ters,org.apache.hadoop.hbase.regionserver.TestRSStatusServlet,org.apac
> >>> >
> >>> he.hadoop.hbase.regionserver.TestScanDeleteTracker,org.apache.hadoop.h
> >>> >
> >>> base.regionserver.TestScanWildcardColumnTracker,org.apache.hadoop.hbas
> >>> >
> >>> e.regionserver.TestScanWithBloomError,org.apache.hadoop.hbase.regionse
> >>> >
> >>> rver.TestStoreScanner,org.apache.hadoop.hbase.regionserver.wal.TestHLo
> >>> >
> >>> gBench,org.apache.hadoop.hbase.regionserver.wal.TestHLogMethods,org.a
> >>> p
> >>> >
> >>> ache.hadoop.hbase.regionserver.wal.TestWALActionsListener,org.apache.h
> >>> >
> >>> adoop.hbase.rest.model.TestCellModel,org.apache.hadoop.hbase.rest.mod
> >>> e
> >>> >
> >>> l.TestCellSetModel,org.apache.hadoop.hbase.rest.model.TestColumnSchem
> >>> a
> >>> >
> >>> Model,org.apache.hadoop.hbase.rest.model.TestRowModelo,rg.apache.ha
> >>> doo
> >>> >
> >>> p.hbase.rest.model.TestScannerModel,org.apache.hadoop.hbase.rest.mod
> >>> el
> >>> >
> >>> .TestStorageClusterStatusModel,org.apache.hadoop.hbase.rest.model.Test
> >>> >
> >>> StorageClusterVersionModel,org.apache.hadoop.hbase.rest.model.TestTabl
> >>> >
> >>> eInfoModel,org.apache.hadoop.hbase.rest.model.TestTableListModel,org.a
> >>> >
> >>> pache.hadoop.hbase.rest.model.TestTableRegionModel,org.apache.hadoop
> >>> .h
> >>> >
> >>> base.rest.model.TestTableSchemaModel,org.apache.hadoop.hbase.rest.mo
> >>> de
> >>> >
> l.TestVersionModel,org.apache.hadoop.hbase.security.TestUser,org.apach
> >>> >
> >>> e.hadoop.hbase.TestAcidGuarantees,org.apache.hadoop.hbase.TestCompar
> >>> e,
> >>> >
> >>> org.apache.hadoop.hbase.TestHRegionLocation,org.apache.hadoop.hbase.T
> >>> e
> >>> >
> >>> stHServerAddress,org.apache.hadoop.hbase.TestHServerInfo,org.apache.ha
> >>> >
> doop.hbase.TestKeyValue,org.apache.hadoop.hbase.TestSerialization,org.
> >>> >
> >>> apache.hadoop.hbase.TestServerName,org.apache.hadoop.hbase.util.TestB
> >>> a
> >>> >
> se64,org.apache.hadoop.hbase.util.TestByteBloomFilter,org.apache.hadoo
> >>> >
> p.hbase.util.TestBytes,org.apache.hadoop.hbase.util.TestCompressionTes
> >>> >
> t,org.apache.hadoop.hbase.util.TestFSTableDescriptors,org.apache.hadoo
> >>> >
> p.hbase.util.TestHBaseFsckComparator,org.apache.hadoop.hbase.util.Test
> >>> >
> >>> IncrementingEnvironmentEdge,org.apache.hadoop.hbase.util.TestKeying,or
> >>> >
> >>> g.apache.hadoop.hbase.util.TestPoolMap,org.apache.hadoop.hbase.util.Te
> >>> >
> >>> stRegionSplitCalculator,org.apache.hadoop.hbase.zookeeper.TestHQuorum
> >>> P
> >>> >
> >>> eer,org.apache.hadoop.hbase.zookeeper.TestZooKeeperMainServerArg,org
> >>> .a
> >>> >
> >>> pache.hadoop.hbase.coprocessor.TestCoprocessorInterface,org.apache.had
> >>> >
> oop.hbase.executor.TestExecutorService,org.apache.hadoop.hbase.filter.
> >>> >
> TestColumnPrefixFilter,org.apache.hadoop.hbase.filter.TestFilter,org.a
> >>> >
> pache.hadoop.hbase.filter.TestMultipleColumnPrefixFilter,org.apache.ha
> >>> >
> doop.hbase.io.hfile.slab.TestSingleSizeCache,org.apache.hadoop.hbase.i
> >>> >
> o.hfile.TestCacheOnWrite,org.apache.hadoop.hbase.io.hfile.TestHFileBlo
> >>> >
> ckIndex,org.apache.hadoop.hbase.io.hfile.TestHFileBlock,org.apache.had
> >>> >
> oop.hbase.io.hfile.TestHFilePerformance,org.apache.hadoop.hbase.io.hfi
> >>> >
> >>> le.TestHFileSeek,org.apache.hadoop.hbase.ipc.TestDelayedRpc,org.apache
> >>> >
> >>> .hadoop.hbase.master.TestCatalogJanitor,org.apache.hadoop.hbase.region
> >>> >
> >>> server.TestAtomicOperation,org.apache.hadoop.hbase.regionserver.TestM
> >>> e
> >>> >
> >>> mStore,org.apache.hadoop.hbase.regionserver.TestReadWriteConsistencyC
> >>> o
> >>> >
> ntrol,org.apache.hadoop.hbase.regionserver.TestSeekOptimizations,org.a
> >>> >
> >>> pache.hadoop.hbase.regionserver.TestSplitTransaction,org.apache.hadoop
> >>> >
> .hbase.regionserver.TestStore,org.apache.hadoop.hbase.replication.Test
> >>> > ReplicationSource
> >>> >
> >>>
> >>>
> >>>
> >>> --
> >>> Todd Lipcon
> >>> Software Engineer, Cloudera
> >>
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message