zookeeper-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "tison (Jira)" <j...@apache.org>
Subject [jira] [Created] (ZOOKEEPER-3557) Towards a testable codebase
Date Wed, 25 Sep 2019 15:57:00 GMT
tison created ZOOKEEPER-3557:

             Summary: Towards a testable codebase
                 Key: ZOOKEEPER-3557
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3557
             Project: ZooKeeper
          Issue Type: Task
          Components: tests
            Reporter: tison

This issue is umbrella issue tracks all efforts towards a testable ZooKeeper codebase.


On the one hand, many of our adopters such as HBase, Curator and so on maintain their own
testkit for ZooKeeper[1][2]; on the other hand, ZooKeeper itself doesn't have a well-designed
testkit. Here are some of issues in our testing "framework".

1. {{ZooKeeperTestable}} becomes a production scope class while it should be in testing scope.
2. {{ZooKeeperTestable}} is only used in {{SessionTimeoutTest}} while its name infers a completed
testing class.
3. {{ClientBase}} is super class of many of zookeeper tests while it contains too many orthogonal
functions that its subclass inherits lots of burdens that is not required.
4. Testing logics are injected casually so that we suffer from visibility chaos.

Due to ZooKeeper doesn't provide testkit our adopters have to write ZK relative tests with
quite internal concepts. For example, HBase wait for ZK server launched by 4 letter words
which causes issue when upgrade from ZK 3.4.x to ZK 3.5.5 where 4 letter words are disabled
by default.

[1] https://github.com/apache/hbase/blob/master/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.java
[2] https://github.com/apache/curator/blob/master/curator-test/src/main/java/org/apache/curator/test/TestingCluster.java

This message was sent by Atlassian Jira

View raw message