summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--athenz-identity-provider-service/src/main/java/com/yahoo/vespa/hosted/athenz/instanceproviderservice/ConfigserverSslContextFactoryProvider.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java2
-rw-r--r--config-provisioning/abi-spec.json1
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java13
-rw-r--r--config/src/tests/frtconnectionpool/DESC1
-rw-r--r--config/src/tests/frtconnectionpool/FILES1
-rw-r--r--configd/src/tests/configd/DESC1
-rw-r--r--configd/src/tests/configd/FILES1
-rw-r--r--configd/src/tests/messages/DESC1
-rw-r--r--configd/src/tests/messages/FILES1
-rw-r--r--configutil/src/tests/model_inspect/FILES1
-rw-r--r--configutil/src/tests/tags/FILES1
-rw-r--r--container-dependency-versions/pom.xml2
-rw-r--r--container-search/src/main/resources/configdefinitions/qr-start.def4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java12
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java51
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java6
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/tls/ControllerSslContextFactoryProvider.java1
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java6
-rw-r--r--document/src/tests/CMakeLists.txt4
-rw-r--r--document/src/tests/documentupdatetestcase.cpp508
-rwxr-xr-xdocumentapi/src/tests/create-test.sh74
-rw-r--r--documentapi/src/tests/policyfactory/DESC1
-rw-r--r--documentapi/src/tests/policyfactory/FILES1
-rw-r--r--documentapi/src/tests/priority/DESC1
-rw-r--r--documentapi/src/tests/priority/FILES1
-rw-r--r--documentapi/src/tests/replymerger/DESC1
-rw-r--r--documentapi/src/tests/replymerger/FILES1
-rw-r--r--documentapi/src/tests/routablefactory/DESC1
-rw-r--r--documentapi/src/tests/routablefactory/FILES1
-rw-r--r--eval/CMakeLists.txt1
-rw-r--r--eval/src/tests/eval/compiled_function/FILES1
-rw-r--r--eval/src/tests/eval/function/FILES1
-rw-r--r--eval/src/tests/eval/interpreted_function/FILES1
-rw-r--r--eval/src/tests/tensor/dense_dot_product_function/FILES1
-rw-r--r--eval/src/tests/tensor/dense_tensor_address_combiner/FILES1
-rw-r--r--eval/src/tests/tensor/dense_tensor_builder/FILES1
-rw-r--r--eval/src/tests/tensor/sparse_tensor_builder/FILES1
-rw-r--r--eval/src/tests/tensor/tensor_address/FILES1
-rw-r--r--eval/src/tests/tensor/tensor_mapper/FILES1
-rw-r--r--eval/src/tests/tensor/tensor_performance/FILES1
-rw-r--r--eval/src/tests/tensor/tensor_remove_operation/CMakeLists.txt8
-rw-r--r--eval/src/tests/tensor/tensor_remove_operation/tensor_remove_operation_test.cpp46
-rw-r--r--eval/src/tests/tensor/tensor_serialization/FILES1
-rw-r--r--eval/src/tests/tensor/tensor_slime_serialization/FILES1
-rw-r--r--eval/src/vespa/eval/tensor/dense/dense_tensor_view.cpp6
-rw-r--r--eval/src/vespa/eval/tensor/dense/dense_tensor_view.h1
-rw-r--r--eval/src/vespa/eval/tensor/sparse/CMakeLists.txt3
-rw-r--r--eval/src/vespa/eval/tensor/sparse/sparse_tensor.cpp12
-rw-r--r--eval/src/vespa/eval/tensor/sparse/sparse_tensor.h1
-rw-r--r--eval/src/vespa/eval/tensor/sparse/sparse_tensor_remove.cpp33
-rw-r--r--eval/src/vespa/eval/tensor/sparse/sparse_tensor_remove.h32
-rw-r--r--eval/src/vespa/eval/tensor/tensor.h6
-rw-r--r--eval/src/vespa/eval/tensor/wrapped_simple_tensor.cpp6
-rw-r--r--eval/src/vespa/eval/tensor/wrapped_simple_tensor.h1
-rw-r--r--fnet/src/tests/databuffer/DESC2
-rw-r--r--fnet/src/tests/databuffer/FILES1
-rw-r--r--fnet/src/tests/examples/FILES1
-rw-r--r--fnet/src/tests/frt/method_pt/DESC2
-rw-r--r--fnet/src/tests/frt/method_pt/FILES1
-rw-r--r--fnet/src/tests/frt/rpc/DESC1
-rw-r--r--fnet/src/tests/frt/rpc/FILES3
-rw-r--r--fnet/src/tests/frt/values/FILES1
-rw-r--r--fnet/src/tests/info/DESC1
-rw-r--r--fnet/src/tests/info/FILES1
-rw-r--r--fnet/src/tests/locking/DESC1
-rw-r--r--fnet/src/tests/locking/FILES2
-rw-r--r--fnet/src/tests/printstuff/FILES1
-rw-r--r--fnet/src/tests/scheduling/DESC1
-rw-r--r--fnet/src/tests/scheduling/FILES1
-rw-r--r--fnet/src/tests/sync_execute/DESC1
-rw-r--r--fnet/src/tests/sync_execute/FILES1
-rw-r--r--fnet/src/tests/time/DESC1
-rw-r--r--fnet/src/tests/time/FILES1
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/application/package-info.java12
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/ssl/impl/DefaultSslContextFactoryProvider.java2
-rw-r--r--jrt_test/src/tests/connect-close/DESC1
-rw-r--r--jrt_test/src/tests/connect-close/FILES1
-rw-r--r--jrt_test/src/tests/echo/DESC3
-rw-r--r--jrt_test/src/tests/echo/FILES5
-rw-r--r--jrt_test/src/tests/garbage/DESC4
-rw-r--r--jrt_test/src/tests/garbage/FILES1
-rw-r--r--jrt_test/src/tests/hello-world/DESC1
-rw-r--r--jrt_test/src/tests/hello-world/FILES3
-rw-r--r--jrt_test/src/tests/mandatory-methods/DESC10
-rw-r--r--jrt_test/src/tests/mandatory-methods/FILES6
-rw-r--r--jrt_test/src/tests/mockup-invoke/DESC2
-rw-r--r--jrt_test/src/tests/mockup-invoke/FILES6
-rw-r--r--jrt_test/src/tests/rpc-error/DESC1
-rw-r--r--jrt_test/src/tests/rpc-error/FILES5
-rw-r--r--jrt_test/src/tests/slobrok-api/DESC2
-rw-r--r--jrt_test/src/tests/slobrok-api/FILES2
-rw-r--r--logd/src/tests/info/DESC1
-rw-r--r--logd/src/tests/info/FILES1
-rw-r--r--logd/src/tests/rotate/DESC2
-rw-r--r--logd/src/tests/rotate/FILES4
-rw-r--r--lowercasing_test/src/tests/lowercasing/DESC7
-rw-r--r--lowercasing_test/src/tests/lowercasing/FILES6
-rwxr-xr-xmessagebus/src/main/java/com/yahoo/messagebus/routing/Resender.java37
-rw-r--r--messagebus/src/tests/advancedrouting/DESC1
-rw-r--r--messagebus/src/tests/advancedrouting/FILES1
-rw-r--r--messagebus/src/tests/auto-reply/DESC2
-rw-r--r--messagebus/src/tests/auto-reply/FILES1
-rw-r--r--messagebus/src/tests/blob/DESC1
-rw-r--r--messagebus/src/tests/blob/FILES1
-rw-r--r--messagebus/src/tests/bucketsequence/DESC1
-rw-r--r--messagebus/src/tests/bucketsequence/FILES1
-rw-r--r--messagebus/src/tests/choke/DESC1
-rw-r--r--messagebus/src/tests/choke/FILES1
-rw-r--r--messagebus/src/tests/configagent/DESC2
-rw-r--r--messagebus/src/tests/configagent/FILES3
-rw-r--r--messagebus/src/tests/context/DESC1
-rw-r--r--messagebus/src/tests/context/FILES1
-rwxr-xr-xmessagebus/src/tests/create-test.sh74
-rw-r--r--messagebus/src/tests/emptyreply/DESC1
-rw-r--r--messagebus/src/tests/emptyreply/FILES1
-rw-r--r--messagebus/src/tests/error/DESC1
-rw-r--r--messagebus/src/tests/error/FILES1
-rw-r--r--messagebus/src/tests/identity/DESC1
-rw-r--r--messagebus/src/tests/identity/FILES2
-rw-r--r--messagebus/src/tests/loadbalance/DESC2
-rw-r--r--messagebus/src/tests/loadbalance/FILES1
-rw-r--r--messagebus/src/tests/messagebus/DESC1
-rw-r--r--messagebus/src/tests/messagebus/FILES1
-rw-r--r--messagebus/src/tests/messageordering/DESC1
-rw-r--r--messagebus/src/tests/messageordering/FILES1
-rw-r--r--messagebus/src/tests/messenger/DESC1
-rw-r--r--messagebus/src/tests/messenger/FILES1
-rw-r--r--messagebus/src/tests/protocolrepository/DESC1
-rw-r--r--messagebus/src/tests/protocolrepository/FILES1
-rw-r--r--messagebus/src/tests/queue/DESC1
-rw-r--r--messagebus/src/tests/queue/FILES1
-rw-r--r--messagebus/src/tests/replygate/DESC1
-rw-r--r--messagebus/src/tests/replygate/FILES1
-rw-r--r--messagebus/src/tests/resender/DESC1
-rw-r--r--messagebus/src/tests/resender/FILES1
-rw-r--r--messagebus/src/tests/result/DESC1
-rw-r--r--messagebus/src/tests/result/FILES1
-rw-r--r--messagebus/src/tests/retrypolicy/DESC1
-rw-r--r--messagebus/src/tests/retrypolicy/FILES1
-rw-r--r--messagebus/src/tests/routable/DESC1
-rw-r--r--messagebus/src/tests/routable/FILES1
-rw-r--r--messagebus/src/tests/routablequeue/DESC1
-rw-r--r--messagebus/src/tests/routablequeue/FILES1
-rw-r--r--messagebus/src/tests/routeparser/DESC1
-rw-r--r--messagebus/src/tests/routeparser/FILES1
-rw-r--r--messagebus/src/tests/routing/DESC1
-rw-r--r--messagebus/src/tests/routing/FILES1
-rw-r--r--messagebus/src/tests/routingcontext/DESC1
-rw-r--r--messagebus/src/tests/routingcontext/FILES1
-rw-r--r--messagebus/src/tests/routingspec/DESC1
-rw-r--r--messagebus/src/tests/routingspec/FILES1
-rw-r--r--messagebus/src/tests/rpcserviceaddress/DESC1
-rw-r--r--messagebus/src/tests/rpcserviceaddress/FILES1
-rw-r--r--messagebus/src/tests/sendadapter/DESC1
-rw-r--r--messagebus/src/tests/sendadapter/FILES1
-rw-r--r--messagebus/src/tests/sequencer/DESC1
-rw-r--r--messagebus/src/tests/sequencer/FILES1
-rw-r--r--messagebus/src/tests/serviceaddress/DESC1
-rw-r--r--messagebus/src/tests/serviceaddress/FILES1
-rw-r--r--messagebus/src/tests/servicepool/DESC1
-rw-r--r--messagebus/src/tests/servicepool/FILES1
-rw-r--r--messagebus/src/tests/shutdown/DESC1
-rw-r--r--messagebus/src/tests/shutdown/FILES1
-rw-r--r--messagebus/src/tests/simple-roundtrip/DESC1
-rw-r--r--messagebus/src/tests/simple-roundtrip/FILES1
-rw-r--r--messagebus/src/tests/simpleprotocol/DESC3
-rw-r--r--messagebus/src/tests/simpleprotocol/FILES1
-rw-r--r--messagebus/src/tests/slobrok/DESC2
-rw-r--r--messagebus/src/tests/slobrok/FILES1
-rw-r--r--messagebus/src/tests/sourcesession/DESC3
-rw-r--r--messagebus/src/tests/sourcesession/FILES1
-rw-r--r--messagebus/src/tests/targetpool/DESC1
-rw-r--r--messagebus/src/tests/targetpool/FILES1
-rw-r--r--messagebus/src/tests/throttling/DESC1
-rw-r--r--messagebus/src/tests/throttling/FILES1
-rw-r--r--messagebus/src/tests/timeout/DESC1
-rw-r--r--messagebus/src/tests/timeout/FILES1
-rw-r--r--messagebus/src/tests/trace-roundtrip/DESC1
-rw-r--r--messagebus/src/tests/trace-roundtrip/FILES1
-rw-r--r--messagebus_test/src/tests/compile-cpp/DESC2
-rw-r--r--messagebus_test/src/tests/compile-cpp/FILES1
-rw-r--r--messagebus_test/src/tests/compile-java/DESC2
-rw-r--r--messagebus_test/src/tests/compile-java/FILES1
-rw-r--r--messagebus_test/src/tests/error/DESC2
-rw-r--r--messagebus_test/src/tests/error/FILES8
-rw-r--r--messagebus_test/src/tests/errorcodes/DESC2
-rw-r--r--messagebus_test/src/tests/errorcodes/FILES5
-rw-r--r--messagebus_test/src/tests/speed/DESC4
-rw-r--r--messagebus_test/src/tests/speed/FILES8
-rw-r--r--messagebus_test/src/tests/trace/DESC1
-rw-r--r--messagebus_test/src/tests/trace/FILES19
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/reports/BaseReport.java45
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNodeTest.java2
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/reports/BaseReportTest.java54
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisionMaintainer.java11
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostProvisionMaintainer.java16
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java12
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionedHost.java24
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java1
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisionMaintainerTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostProvisionMaintainerTest.java8
-rw-r--r--searchcommon/src/tests/attribute/config/DESC1
-rw-r--r--searchcommon/src/tests/attribute/config/FILES1
-rw-r--r--searchcommon/src/tests/schema/DESC1
-rw-r--r--searchcommon/src/tests/schema/FILES1
-rw-r--r--searchcore/src/tests/fdispatch/fnet_search/DESC1
-rw-r--r--searchcore/src/tests/fdispatch/fnet_search/FILES1
-rw-r--r--searchcore/src/tests/fdispatch/randomrow/DESC1
-rw-r--r--searchcore/src/tests/fdispatch/randomrow/FILES1
-rw-r--r--searchcore/src/tests/grouping/DESC1
-rw-r--r--searchcore/src/tests/grouping/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_aspect_delayer/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_aspect_delayer/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_directory/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_directory/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_initializer/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_initializer/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_manager/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_manager/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_populator/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_populator/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_usage_filter/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_usage_filter/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/attributes_state_explorer/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/attributes_state_explorer/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/document_field_populator/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/document_field_populator/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/imported_attributes_context/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/imported_attributes_context/FILES1
-rw-r--r--searchcore/src/tests/proton/attribute/imported_attributes_repo/DESC1
-rw-r--r--searchcore/src/tests/proton/attribute/imported_attributes_repo/FILES1
-rw-r--r--searchcore/src/tests/proton/bucketdb/bucketdb/DESC1
-rw-r--r--searchcore/src/tests/proton/bucketdb/bucketdb/FILES1
-rw-r--r--searchcore/src/tests/proton/common/document_type_inspector/DESC2
-rw-r--r--searchcore/src/tests/proton/common/document_type_inspector/FILES1
-rw-r--r--searchcore/src/tests/proton/common/hw_info_sampler/DESC2
-rw-r--r--searchcore/src/tests/proton/common/hw_info_sampler/FILES1
-rw-r--r--searchcore/src/tests/proton/common/state_reporter_utils/DESC1
-rw-r--r--searchcore/src/tests/proton/common/state_reporter_utils/FILES1
-rw-r--r--searchcore/src/tests/proton/create-test.sh72
-rw-r--r--searchcore/src/tests/proton/docsummary/DESC1
-rw-r--r--searchcore/src/tests/proton/docsummary/FILES1
-rw-r--r--searchcore/src/tests/proton/document_iterator/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/buckethandler/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/buckethandler/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/clusterstatehandler/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/clusterstatehandler/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/combiningfeedview/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/combiningfeedview/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/configurer/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/configurer/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/document_scan_iterator/DESC2
-rw-r--r--searchcore/src/tests/proton/documentdb/document_scan_iterator/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/document_subdbs/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/document_subdbs/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/documentbucketmover/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/documentbucketmover/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/documentdbconfig/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/documentdbconfig/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/documentdbconfigscout/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/documentdbconfigscout/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/feedhandler/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/feedhandler/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/feedview/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/feedview/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/fileconfigmanager/DESC1
-rw-r--r--searchcore/src/tests/proton/documentdb/fileconfigmanager/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/DESC2
-rw-r--r--searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/lid_space_compaction/DESC2
-rw-r--r--searchcore/src/tests/proton/documentdb/lid_space_compaction/FILES1
-rw-r--r--searchcore/src/tests/proton/documentdb/maintenancecontroller/DESC2
-rw-r--r--searchcore/src/tests/proton/documentdb/maintenancecontroller/FILES2
-rw-r--r--searchcore/src/tests/proton/documentdb/move_operation_limiter/FILES1
-rw-r--r--searchcore/src/tests/proton/documentmetastore/DESC1
-rw-r--r--searchcore/src/tests/proton/documentmetastore/FILES1
-rw-r--r--searchcore/src/tests/proton/documentmetastore/lidreusedelayer/DESC1
-rw-r--r--searchcore/src/tests/proton/documentmetastore/lidreusedelayer/FILES1
-rw-r--r--searchcore/src/tests/proton/feed_and_search/DESC1
-rw-r--r--searchcore/src/tests/proton/feed_and_search/FILES1
-rw-r--r--searchcore/src/tests/proton/feedtoken/DESC1
-rw-r--r--searchcore/src/tests/proton/feedtoken/FILES1
-rw-r--r--searchcore/src/tests/proton/flushengine/DESC1
-rw-r--r--searchcore/src/tests/proton/flushengine/FILES1
-rw-r--r--searchcore/src/tests/proton/flushengine/prepare_restart_flush_strategy/DESC1
-rw-r--r--searchcore/src/tests/proton/flushengine/prepare_restart_flush_strategy/FILES1
-rw-r--r--searchcore/src/tests/proton/flushengine/shrink_lid_space_flush_target/DESC1
-rw-r--r--searchcore/src/tests/proton/flushengine/shrink_lid_space_flush_target/FILES1
-rw-r--r--searchcore/src/tests/proton/index/index_writer/DESC1
-rw-r--r--searchcore/src/tests/proton/index/index_writer/FILES1
-rw-r--r--searchcore/src/tests/proton/initializer/DESC1
-rw-r--r--searchcore/src/tests/proton/initializer/FILES1
-rw-r--r--searchcore/src/tests/proton/matchengine/DESC1
-rw-r--r--searchcore/src/tests/proton/matchengine/FILES1
-rw-r--r--searchcore/src/tests/proton/matching/DESC1
-rw-r--r--searchcore/src/tests/proton/matching/FILES1
-rw-r--r--searchcore/src/tests/proton/matching/match_loop_communicator/FILES1
-rw-r--r--searchcore/src/tests/proton/matching/match_phase_limiter/FILES1
-rw-r--r--searchcore/src/tests/proton/matching/partial_result/FILES1
-rw-r--r--searchcore/src/tests/proton/metrics/documentdb_job_trackers/DESC1
-rw-r--r--searchcore/src/tests/proton/metrics/documentdb_job_trackers/FILES1
-rw-r--r--searchcore/src/tests/proton/metrics/job_load_sampler/DESC1
-rw-r--r--searchcore/src/tests/proton/metrics/job_load_sampler/FILES1
-rw-r--r--searchcore/src/tests/proton/metrics/job_tracked_flush/DESC2
-rw-r--r--searchcore/src/tests/proton/metrics/job_tracked_flush/FILES1
-rw-r--r--searchcore/src/tests/proton/metrics/metrics_engine/DESC1
-rw-r--r--searchcore/src/tests/proton/metrics/metrics_engine/FILES1
-rw-r--r--searchcore/src/tests/proton/persistenceconformance/DESC1
-rw-r--r--searchcore/src/tests/proton/persistenceconformance/FILES1
-rw-r--r--searchcore/src/tests/proton/persistenceengine/DESC1
-rw-r--r--searchcore/src/tests/proton/persistenceengine/FILES1
-rw-r--r--searchcore/src/tests/proton/reference/document_db_reference/FILES1
-rw-r--r--searchcore/src/tests/proton/reference/document_db_reference_registry/DESC1
-rw-r--r--searchcore/src/tests/proton/reference/document_db_reference_registry/FILES1
-rw-r--r--searchcore/src/tests/proton/reference/document_db_reference_resolver/DESC1
-rw-r--r--searchcore/src/tests/proton/reference/document_db_reference_resolver/FILES1
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_change_handler/DESC1
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_change_handler/FILES1
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_change_listener/DESC1
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_change_listener/FILES1
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_change_registrator/DESC1
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_change_registrator/FILES1
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_mapper/DESC1
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_mapper/FILES1
-rw-r--r--searchcore/src/tests/proton/reprocessing/attribute_reprocessing_initializer/DESC2
-rw-r--r--searchcore/src/tests/proton/reprocessing/attribute_reprocessing_initializer/FILES1
-rw-r--r--searchcore/src/tests/proton/reprocessing/document_reprocessing_handler/DESC2
-rw-r--r--searchcore/src/tests/proton/reprocessing/document_reprocessing_handler/FILES1
-rw-r--r--searchcore/src/tests/proton/reprocessing/reprocessing_runner/DESC1
-rw-r--r--searchcore/src/tests/proton/reprocessing/reprocessing_runner/FILES1
-rw-r--r--searchcore/src/tests/proton/server/disk_mem_usage_filter/DESC1
-rw-r--r--searchcore/src/tests/proton/server/disk_mem_usage_filter/FILES1
-rw-r--r--searchcore/src/tests/proton/server/health_adapter/FILES1
-rw-r--r--searchcore/src/tests/proton/server/memory_flush_config_updater/DESC1
-rw-r--r--searchcore/src/tests/proton/server/memory_flush_config_updater/FILES1
-rw-r--r--searchcore/src/tests/proton/server/memoryflush/DESC1
-rw-r--r--searchcore/src/tests/proton/server/memoryflush/FILES1
-rw-r--r--searchcore/src/tests/proton/server/visibility_handler/DESC1
-rw-r--r--searchcore/src/tests/proton/server/visibility_handler/FILES1
-rw-r--r--searchcore/src/tests/proton/statusreport/DESC1
-rw-r--r--searchcore/src/tests/proton/statusreport/FILES1
-rw-r--r--searchcore/src/tests/proton/summaryengine/DESC1
-rw-r--r--searchcore/src/tests/proton/summaryengine/FILES1
-rw-r--r--searchcore/src/tests/proton/verify_ranksetup/DESC1
-rw-r--r--searchcore/src/tests/proton/verify_ranksetup/FILES1
-rw-r--r--searchcorespi/src/tests/plugin/DESC1
-rw-r--r--searchcorespi/src/tests/plugin/FILES1
-rw-r--r--searchlib/src/tests/aggregator/DESC1
-rw-r--r--searchlib/src/tests/aggregator/FILES1
-rw-r--r--searchlib/src/tests/alignment/DESC1
-rw-r--r--searchlib/src/tests/alignment/FILES1
-rw-r--r--searchlib/src/tests/attribute/DESC1
-rw-r--r--searchlib/src/tests/attribute/FILES2
-rw-r--r--searchlib/src/tests/attribute/compaction/DESC1
-rw-r--r--searchlib/src/tests/attribute/compaction/FILES1
-rw-r--r--searchlib/src/tests/attribute/comparator/DESC1
-rw-r--r--searchlib/src/tests/attribute/comparator/FILES1
-rw-r--r--searchlib/src/tests/attribute/document_weight_iterator/FILES1
-rw-r--r--searchlib/src/tests/attribute/enumstore/DESC1
-rw-r--r--searchlib/src/tests/attribute/enumstore/FILES1
-rw-r--r--searchlib/src/tests/attribute/extendattributes/DESC1
-rw-r--r--searchlib/src/tests/attribute/extendattributes/FILES1
-rw-r--r--searchlib/src/tests/attribute/multi_value_mapping/DESC1
-rw-r--r--searchlib/src/tests/attribute/multi_value_mapping/FILES1
-rw-r--r--searchlib/src/tests/attribute/postinglist/DESC1
-rw-r--r--searchlib/src/tests/attribute/postinglist/FILES1
-rw-r--r--searchlib/src/tests/attribute/postinglistattribute/DESC1
-rw-r--r--searchlib/src/tests/attribute/postinglistattribute/FILES1
-rw-r--r--searchlib/src/tests/attribute/reference_attribute/FILES1
-rw-r--r--searchlib/src/tests/attribute/searchcontext/DESC1
-rw-r--r--searchlib/src/tests/attribute/searchcontext/FILES1
-rw-r--r--searchlib/src/tests/attribute/sourceselector/DESC1
-rw-r--r--searchlib/src/tests/attribute/sourceselector/FILES1
-rw-r--r--searchlib/src/tests/attribute/stringattribute/DESC1
-rw-r--r--searchlib/src/tests/attribute/stringattribute/FILES1
-rw-r--r--searchlib/src/tests/attribute/tensorattribute/DESC1
-rw-r--r--searchlib/src/tests/attribute/tensorattribute/FILES1
-rw-r--r--searchlib/src/tests/bitcompression/expgolomb/DESC1
-rw-r--r--searchlib/src/tests/bitcompression/expgolomb/FILES1
-rw-r--r--searchlib/src/tests/bitvector/DESC1
-rw-r--r--searchlib/src/tests/bitvector/FILES1
-rw-r--r--searchlib/src/tests/bytecomplens/DESC1
-rw-r--r--searchlib/src/tests/bytecomplens/FILES1
-rw-r--r--searchlib/src/tests/common/bitvector/DESC1
-rw-r--r--searchlib/src/tests/common/bitvector/FILES1
-rw-r--r--searchlib/src/tests/common/foregroundtaskexecutor/DESC1
-rw-r--r--searchlib/src/tests/common/foregroundtaskexecutor/FILES1
-rw-r--r--searchlib/src/tests/common/location/FILES1
-rw-r--r--searchlib/src/tests/common/packets/DESC1
-rw-r--r--searchlib/src/tests/common/packets/FILES1
-rw-r--r--searchlib/src/tests/common/rcuvector/DESC1
-rw-r--r--searchlib/src/tests/common/rcuvector/FILES1
-rw-r--r--searchlib/src/tests/common/sequencedtaskexecutor/DESC1
-rw-r--r--searchlib/src/tests/common/sequencedtaskexecutor/FILES1
-rw-r--r--searchlib/src/tests/common/summaryfeatures/DESC1
-rw-r--r--searchlib/src/tests/common/summaryfeatures/FILES1
-rwxr-xr-xsearchlib/src/tests/create-test.sh52
-rw-r--r--searchlib/src/tests/datastore/array_store/FILES1
-rw-r--r--searchlib/src/tests/datastore/array_store_config/FILES1
-rw-r--r--searchlib/src/tests/datastore/buffer_type/FILES1
-rw-r--r--searchlib/src/tests/datastore/datastore/FILES1
-rw-r--r--searchlib/src/tests/datastore/unique_store/FILES1
-rw-r--r--searchlib/src/tests/diskindex/bitvector/DESC1
-rw-r--r--searchlib/src/tests/diskindex/bitvector/FILES1
-rw-r--r--searchlib/src/tests/diskindex/diskindex/DESC1
-rw-r--r--searchlib/src/tests/diskindex/diskindex/FILES1
-rw-r--r--searchlib/src/tests/diskindex/fusion/DESC1
-rw-r--r--searchlib/src/tests/diskindex/fusion/FILES1
-rw-r--r--searchlib/src/tests/docstore/chunk/FILES1
-rw-r--r--searchlib/src/tests/docstore/document_store/FILES1
-rw-r--r--searchlib/src/tests/docstore/document_store_visitor/DESC1
-rw-r--r--searchlib/src/tests/docstore/document_store_visitor/FILES1
-rw-r--r--searchlib/src/tests/docstore/file_chunk/FILES1
-rw-r--r--searchlib/src/tests/docstore/lid_info/FILES1
-rw-r--r--searchlib/src/tests/docstore/logdatastore/DESC1
-rw-r--r--searchlib/src/tests/docstore/logdatastore/FILES1
-rw-r--r--searchlib/src/tests/docstore/store_by_bucket/FILES1
-rw-r--r--searchlib/src/tests/engine/docsumapi/DESC1
-rw-r--r--searchlib/src/tests/engine/docsumapi/FILES1
-rw-r--r--searchlib/src/tests/engine/monitorapi/DESC1
-rw-r--r--searchlib/src/tests/engine/monitorapi/FILES1
-rw-r--r--searchlib/src/tests/engine/searchapi/DESC1
-rw-r--r--searchlib/src/tests/engine/searchapi/FILES1
-rw-r--r--searchlib/src/tests/engine/transportserver/DESC1
-rw-r--r--searchlib/src/tests/engine/transportserver/FILES1
-rw-r--r--searchlib/src/tests/features/DESC1
-rw-r--r--searchlib/src/tests/features/FILES3
-rw-r--r--searchlib/src/tests/features/constant/FILES1
-rw-r--r--searchlib/src/tests/features/element_completeness/FILES1
-rw-r--r--searchlib/src/tests/features/euclidean_distance/FILES1
-rw-r--r--searchlib/src/tests/features/item_raw_score/FILES1
-rw-r--r--searchlib/src/tests/features/native_dot_product/FILES1
-rw-r--r--searchlib/src/tests/features/raw_score/FILES1
-rw-r--r--searchlib/src/tests/features/tensor/FILES1
-rw-r--r--searchlib/src/tests/features/tensor_from_labels/FILES1
-rw-r--r--searchlib/src/tests/features/tensor_from_weighted_set/FILES1
-rw-r--r--searchlib/src/tests/features/text_similarity_feature/FILES1
-rw-r--r--searchlib/src/tests/features/util/FILES1
-rw-r--r--searchlib/src/tests/fef/DESC1
-rw-r--r--searchlib/src/tests/fef/FILES1
-rw-r--r--searchlib/src/tests/fef/attributecontent/DESC1
-rw-r--r--searchlib/src/tests/fef/attributecontent/FILES1
-rw-r--r--searchlib/src/tests/fef/featurenamebuilder/DESC1
-rw-r--r--searchlib/src/tests/fef/featurenamebuilder/FILES1
-rw-r--r--searchlib/src/tests/fef/featurenameparser/DESC1
-rw-r--r--searchlib/src/tests/fef/featurenameparser/FILES1
-rw-r--r--searchlib/src/tests/fef/featureoverride/DESC1
-rw-r--r--searchlib/src/tests/fef/featureoverride/FILES1
-rw-r--r--searchlib/src/tests/fef/parameter/DESC1
-rw-r--r--searchlib/src/tests/fef/parameter/FILES1
-rw-r--r--searchlib/src/tests/fef/phrasesplitter/DESC1
-rw-r--r--searchlib/src/tests/fef/phrasesplitter/FILES1
-rw-r--r--searchlib/src/tests/fef/properties/DESC1
-rw-r--r--searchlib/src/tests/fef/properties/FILES1
-rw-r--r--searchlib/src/tests/fef/rank_program/FILES1
-rw-r--r--searchlib/src/tests/fef/resolver/DESC1
-rw-r--r--searchlib/src/tests/fef/resolver/FILES1
-rw-r--r--searchlib/src/tests/fef/table/DESC1
-rw-r--r--searchlib/src/tests/fef/table/FILES1
-rw-r--r--searchlib/src/tests/fef/termfieldmodel/DESC1
-rw-r--r--searchlib/src/tests/fef/termfieldmodel/FILES1
-rw-r--r--searchlib/src/tests/fef/termmatchdatamerger/DESC1
-rw-r--r--searchlib/src/tests/fef/termmatchdatamerger/FILES1
-rw-r--r--searchlib/src/tests/fileheadertk/DESC1
-rw-r--r--searchlib/src/tests/fileheadertk/FILES1
-rw-r--r--searchlib/src/tests/forcelink/DESC1
-rw-r--r--searchlib/src/tests/forcelink/FILES1
-rw-r--r--searchlib/src/tests/grouping/DESC1
-rw-r--r--searchlib/src/tests/grouping/FILES4
-rw-r--r--searchlib/src/tests/groupingengine/DESC1
-rw-r--r--searchlib/src/tests/groupingengine/FILES4
-rw-r--r--searchlib/src/tests/hitcollector/DESC1
-rw-r--r--searchlib/src/tests/hitcollector/FILES1
-rw-r--r--searchlib/src/tests/index/docbuilder/DESC1
-rw-r--r--searchlib/src/tests/index/docbuilder/FILES1
-rw-r--r--searchlib/src/tests/index/doctypebuilder/DESC1
-rw-r--r--searchlib/src/tests/index/doctypebuilder/FILES1
-rw-r--r--searchlib/src/tests/indexmetainfo/DESC2
-rw-r--r--searchlib/src/tests/indexmetainfo/FILES1
-rw-r--r--searchlib/src/tests/memoryindex/compact_document_words_store/DESC1
-rw-r--r--searchlib/src/tests/memoryindex/compact_document_words_store/FILES1
-rw-r--r--searchlib/src/tests/memoryindex/datastore/DESC1
-rw-r--r--searchlib/src/tests/memoryindex/datastore/FILES2
-rw-r--r--searchlib/src/tests/memoryindex/dictionary/DESC1
-rw-r--r--searchlib/src/tests/memoryindex/dictionary/FILES1
-rw-r--r--searchlib/src/tests/memoryindex/document_remover/DESC1
-rw-r--r--searchlib/src/tests/memoryindex/document_remover/FILES1
-rw-r--r--searchlib/src/tests/memoryindex/documentinverter/DESC1
-rw-r--r--searchlib/src/tests/memoryindex/documentinverter/FILES1
-rw-r--r--searchlib/src/tests/memoryindex/fieldinverter/DESC1
-rw-r--r--searchlib/src/tests/memoryindex/fieldinverter/FILES1
-rw-r--r--searchlib/src/tests/memoryindex/memoryindex/DESC1
-rw-r--r--searchlib/src/tests/memoryindex/memoryindex/FILES1
-rw-r--r--searchlib/src/tests/memoryindex/urlfieldinverter/DESC1
-rw-r--r--searchlib/src/tests/memoryindex/urlfieldinverter/FILES1
-rw-r--r--searchlib/src/tests/nearsearch/DESC1
-rw-r--r--searchlib/src/tests/nearsearch/FILES1
-rw-r--r--searchlib/src/tests/prettyfloat/DESC1
-rw-r--r--searchlib/src/tests/prettyfloat/FILES1
-rw-r--r--searchlib/src/tests/query/DESC1
-rw-r--r--searchlib/src/tests/query/FILES2
-rw-r--r--searchlib/src/tests/queryeval/DESC1
-rw-r--r--searchlib/src/tests/queryeval/FILES1
-rw-r--r--searchlib/src/tests/queryeval/blueprint/DESC1
-rw-r--r--searchlib/src/tests/queryeval/blueprint/FILES1
-rw-r--r--searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/DESC1
-rw-r--r--searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/FILES1
-rw-r--r--searchlib/src/tests/queryeval/dot_product/FILES1
-rw-r--r--searchlib/src/tests/queryeval/equiv/DESC1
-rw-r--r--searchlib/src/tests/queryeval/equiv/FILES1
-rw-r--r--searchlib/src/tests/queryeval/fake_searchable/DESC1
-rw-r--r--searchlib/src/tests/queryeval/fake_searchable/FILES1
-rw-r--r--searchlib/src/tests/queryeval/monitoring_search_iterator/DESC1
-rw-r--r--searchlib/src/tests/queryeval/monitoring_search_iterator/FILES1
-rw-r--r--searchlib/src/tests/queryeval/multibitvectoriterator/DESC1
-rw-r--r--searchlib/src/tests/queryeval/multibitvectoriterator/FILES2
-rw-r--r--searchlib/src/tests/queryeval/parallel_weak_and/DESC1
-rw-r--r--searchlib/src/tests/queryeval/parallel_weak_and/FILES2
-rw-r--r--searchlib/src/tests/queryeval/simple_phrase/DESC1
-rw-r--r--searchlib/src/tests/queryeval/simple_phrase/FILES1
-rw-r--r--searchlib/src/tests/queryeval/sourceblender/DESC1
-rw-r--r--searchlib/src/tests/queryeval/sourceblender/FILES1
-rw-r--r--searchlib/src/tests/queryeval/sparse_vector_benchmark/FILES1
-rw-r--r--searchlib/src/tests/queryeval/weak_and/FILES2
-rw-r--r--searchlib/src/tests/queryeval/weak_and_heap/DESC1
-rw-r--r--searchlib/src/tests/queryeval/weak_and_heap/FILES1
-rw-r--r--searchlib/src/tests/queryeval/weak_and_scorers/DESC1
-rw-r--r--searchlib/src/tests/queryeval/weak_and_scorers/FILES1
-rw-r--r--searchlib/src/tests/queryeval/weighted_set_term/DESC1
-rw-r--r--searchlib/src/tests/queryeval/weighted_set_term/FILES1
-rw-r--r--searchlib/src/tests/rankingexpression/feature_name_extractor/FILES1
-rw-r--r--searchlib/src/tests/ranksetup/DESC1
-rw-r--r--searchlib/src/tests/ranksetup/FILES1
-rw-r--r--searchlib/src/tests/ranksetup/verify_feature/FILES1
-rw-r--r--searchlib/src/tests/sort/DESC1
-rw-r--r--searchlib/src/tests/sort/FILES1
-rw-r--r--searchlib/src/tests/tensor/dense_tensor_store/FILES1
-rw-r--r--searchlib/src/tests/transactionlog/DESC1
-rw-r--r--searchlib/src/tests/transactionlog/FILES2
-rw-r--r--searchlib/src/tests/transactionlogstress/DESC1
-rw-r--r--searchlib/src/tests/transactionlogstress/FILES1
-rw-r--r--searchlib/src/tests/true/DESC1
-rw-r--r--searchlib/src/tests/true/FILES1
-rw-r--r--searchlib/src/tests/util/ioerrorhandler/DESC1
-rw-r--r--searchlib/src/tests/util/ioerrorhandler/FILES1
-rw-r--r--searchlib/src/tests/util/searchable_stats/DESC1
-rw-r--r--searchlib/src/tests/util/searchable_stats/FILES1
-rw-r--r--searchlib/src/tests/util/sigbushandler/DESC1
-rw-r--r--searchlib/src/tests/util/sigbushandler/FILES1
-rw-r--r--searchlib/src/tests/util/slime_output_raw_buf_adapter/FILES1
-rw-r--r--searchlib/src/tests/util/statebuf/DESC1
-rw-r--r--searchlib/src/tests/util/statebuf/FILES1
-rw-r--r--searchlib/src/tests/util/statefile/DESC1
-rw-r--r--searchlib/src/tests/util/statefile/FILES1
-rw-r--r--searchlib/src/tests/vespa-fileheader-inspect/DESC1
-rw-r--r--searchlib/src/tests/vespa-fileheader-inspect/FILES1
-rw-r--r--searchsummary/src/tests/docsummary/slime_summary/FILES1
-rw-r--r--slobrok/src/tests/backoff/DESC1
-rw-r--r--slobrok/src/tests/backoff/FILES1
-rw-r--r--slobrok/src/tests/configure/DESC1
-rw-r--r--slobrok/src/tests/configure/FILES1
-rw-r--r--slobrok/src/tests/mirrorapi/DESC1
-rw-r--r--slobrok/src/tests/mirrorapi/FILES1
-rw-r--r--slobrok/src/tests/registerapi/DESC1
-rw-r--r--slobrok/src/tests/registerapi/FILES1
-rw-r--r--slobrok/src/tests/standalone/DESC1
-rw-r--r--slobrok/src/tests/standalone/FILES1
-rw-r--r--staging_vespalib/src/tests/array/DESC1
-rw-r--r--staging_vespalib/src/tests/array/FILES1
-rw-r--r--staging_vespalib/src/tests/benchmark/DESC1
-rw-r--r--staging_vespalib/src/tests/benchmark/FILES1
-rw-r--r--staging_vespalib/src/tests/bits/DESC1
-rw-r--r--staging_vespalib/src/tests/bits/FILES1
-rw-r--r--staging_vespalib/src/tests/clock/DESC1
-rw-r--r--staging_vespalib/src/tests/clock/FILES1
-rw-r--r--staging_vespalib/src/tests/crc/DESC1
-rw-r--r--staging_vespalib/src/tests/crc/FILES1
-rwxr-xr-xstaging_vespalib/src/tests/create-test.sh64
-rw-r--r--staging_vespalib/src/tests/encoding/base64/DESC1
-rw-r--r--staging_vespalib/src/tests/encoding/base64/FILES1
-rw-r--r--staging_vespalib/src/tests/fileheader/DESC1
-rw-r--r--staging_vespalib/src/tests/fileheader/FILES1
-rw-r--r--staging_vespalib/src/tests/floatingpointtype/DESC1
-rw-r--r--staging_vespalib/src/tests/floatingpointtype/FILES1
-rw-r--r--staging_vespalib/src/tests/librarypool/DESC1
-rw-r--r--staging_vespalib/src/tests/librarypool/FILES1
-rw-r--r--staging_vespalib/src/tests/objectdump/DESC1
-rw-r--r--staging_vespalib/src/tests/objectdump/FILES1
-rw-r--r--staging_vespalib/src/tests/objects/DESC2
-rw-r--r--staging_vespalib/src/tests/objects/FILES2
-rw-r--r--staging_vespalib/src/tests/objectselection/DESC1
-rw-r--r--staging_vespalib/src/tests/objectselection/FILES1
-rw-r--r--staging_vespalib/src/tests/polymorphicarray/DESC1
-rw-r--r--staging_vespalib/src/tests/polymorphicarray/FILES1
-rw-r--r--staging_vespalib/src/tests/programoptions/DESC1
-rw-r--r--staging_vespalib/src/tests/programoptions/FILES1
-rw-r--r--staging_vespalib/src/tests/rusage/DESC1
-rw-r--r--staging_vespalib/src/tests/rusage/FILES1
-rw-r--r--staging_vespalib/src/tests/shutdownguard/DESC1
-rw-r--r--staging_vespalib/src/tests/shutdownguard/FILES1
-rw-r--r--staging_vespalib/src/tests/state_server/FILES1
-rw-r--r--staging_vespalib/src/tests/stllike/DESC1
-rw-r--r--staging_vespalib/src/tests/stllike/FILES3
-rw-r--r--staging_vespalib/src/tests/util/process_memory_stats/DESC1
-rw-r--r--staging_vespalib/src/tests/util/process_memory_stats/FILES1
-rw-r--r--staging_vespalib/src/tests/xmlserializable/DESC1
-rw-r--r--staging_vespalib/src/tests/xmlserializable/FILES1
-rwxr-xr-xstandalone-container/src/main/sh/jdisc_container_start101
-rw-r--r--storage/src/tests/CMakeLists.txt4
-rw-r--r--streamingvisitors/src/tests/hitcollector/DESC1
-rw-r--r--streamingvisitors/src/tests/hitcollector/FILES1
-rw-r--r--streamingvisitors/src/tests/querywrapper/DESC1
-rw-r--r--streamingvisitors/src/tests/querywrapper/FILES1
-rw-r--r--vbench/src/tests/app_dumpurl/FILES1
-rw-r--r--vbench/src/tests/app_vbench/FILES3
-rw-r--r--vbench/src/tests/benchmark_headers/FILES1
-rwxr-xr-xvbench/src/tests/create-test.sh55
-rw-r--r--vbench/src/tests/dispatcher/FILES1
-rw-r--r--vbench/src/tests/dropped_tagger/FILES1
-rw-r--r--vbench/src/tests/handler_thread/FILES1
-rw-r--r--vbench/src/tests/hex_number/FILES1
-rw-r--r--vbench/src/tests/http_client/FILES1
-rw-r--r--vbench/src/tests/http_connection/FILES1
-rw-r--r--vbench/src/tests/http_connection_pool/FILES1
-rw-r--r--vbench/src/tests/input_file_reader/FILES3
-rw-r--r--vbench/src/tests/latency_analyzer/FILES1
-rw-r--r--vbench/src/tests/line_reader/FILES1
-rw-r--r--vbench/src/tests/qps_analyzer/FILES1
-rw-r--r--vbench/src/tests/qps_tagger/FILES1
-rw-r--r--vbench/src/tests/request_dumper/FILES1
-rw-r--r--vbench/src/tests/request_generator/FILES2
-rw-r--r--vbench/src/tests/request_sink/FILES1
-rw-r--r--vbench/src/tests/server_spec/FILES1
-rw-r--r--vbench/src/tests/server_tagger/FILES1
-rw-r--r--vbench/src/tests/socket/FILES1
-rw-r--r--vbench/src/tests/taint/FILES1
-rw-r--r--vbench/src/tests/time_queue/FILES1
-rw-r--r--vbench/src/tests/timer/FILES1
-rw-r--r--vdstestlib/src/tests/cppunit/DESC1
-rw-r--r--vdstestlib/src/tests/cppunit/FILES1
-rw-r--r--vdstestlib/src/tests/dirconfig/DESC1
-rw-r--r--vdstestlib/src/tests/dirconfig/FILES1
-rw-r--r--vespalib/src/tests/alloc/DESC1
-rw-r--r--vespalib/src/tests/alloc/FILES1
-rw-r--r--vespalib/src/tests/approx/FILES1
-rw-r--r--vespalib/src/tests/array/DESC1
-rw-r--r--vespalib/src/tests/array/FILES1
-rw-r--r--vespalib/src/tests/arrayqueue/DESC1
-rw-r--r--vespalib/src/tests/arrayqueue/FILES1
-rw-r--r--vespalib/src/tests/barrier/FILES1
-rw-r--r--vespalib/src/tests/box/FILES1
-rw-r--r--vespalib/src/tests/component/DESC1
-rw-r--r--vespalib/src/tests/component/FILES1
-rw-r--r--vespalib/src/tests/compress/DESC1
-rw-r--r--vespalib/src/tests/compress/FILES1
-rwxr-xr-xvespalib/src/tests/create-test.sh53
-rw-r--r--vespalib/src/tests/delegatelist/DESC1
-rw-r--r--vespalib/src/tests/delegatelist/FILES1
-rw-r--r--vespalib/src/tests/dual_merge_director/FILES1
-rw-r--r--vespalib/src/tests/eventbarrier/DESC1
-rw-r--r--vespalib/src/tests/eventbarrier/FILES1
-rw-r--r--vespalib/src/tests/exception_classes/FILES1
-rw-r--r--vespalib/src/tests/executor/DESC1
-rw-r--r--vespalib/src/tests/executor/FILES4
-rw-r--r--vespalib/src/tests/explore_modern_cpp/FILES1
-rw-r--r--vespalib/src/tests/false/DESC1
-rw-r--r--vespalib/src/tests/false/FILES1
-rw-r--r--vespalib/src/tests/fiddle/FILES1
-rw-r--r--vespalib/src/tests/gencnt/DESC2
-rw-r--r--vespalib/src/tests/gencnt/FILES1
-rw-r--r--vespalib/src/tests/guard/DESC1
-rw-r--r--vespalib/src/tests/guard/FILES1
-rw-r--r--vespalib/src/tests/host_name/FILES1
-rw-r--r--vespalib/src/tests/io/fileutil/DESC1
-rw-r--r--vespalib/src/tests/io/fileutil/FILES1
-rw-r--r--vespalib/src/tests/left_right_heap/FILES1
-rw-r--r--vespalib/src/tests/make_fixture_macros/FILES1
-rw-r--r--vespalib/src/tests/memory/DESC1
-rw-r--r--vespalib/src/tests/memory/FILES1
-rw-r--r--vespalib/src/tests/net/tls/openssl_impl/openssl_impl_test.cpp34
-rw-r--r--vespalib/src/tests/objects/nbostream/FILES1
-rw-r--r--vespalib/src/tests/optimized/DESC1
-rw-r--r--vespalib/src/tests/optimized/FILES1
-rw-r--r--vespalib/src/tests/printable/DESC1
-rw-r--r--vespalib/src/tests/printable/FILES1
-rw-r--r--vespalib/src/tests/priority_queue/DESC1
-rw-r--r--vespalib/src/tests/priority_queue/FILES1
-rw-r--r--vespalib/src/tests/random/DESC1
-rw-r--r--vespalib/src/tests/random/FILES1
-rw-r--r--vespalib/src/tests/referencecounter/DESC1
-rw-r--r--vespalib/src/tests/referencecounter/FILES1
-rw-r--r--vespalib/src/tests/regex/DESC1
-rw-r--r--vespalib/src/tests/regex/FILES1
-rw-r--r--vespalib/src/tests/rendezvous/FILES1
-rw-r--r--vespalib/src/tests/runnable_pair/FILES1
-rw-r--r--vespalib/src/tests/rwlock/DESC1
-rw-r--r--vespalib/src/tests/rwlock/FILES1
-rw-r--r--vespalib/src/tests/sha1/FILES1
-rw-r--r--vespalib/src/tests/sharedptr/DESC1
-rw-r--r--vespalib/src/tests/sharedptr/FILES2
-rw-r--r--vespalib/src/tests/signalhandler/DESC1
-rw-r--r--vespalib/src/tests/signalhandler/FILES2
-rw-r--r--vespalib/src/tests/simple_thread_bundle/FILES1
-rw-r--r--vespalib/src/tests/slaveproc/DESC2
-rw-r--r--vespalib/src/tests/slaveproc/FILES1
-rw-r--r--vespalib/src/tests/slime/DESC1
-rw-r--r--vespalib/src/tests/slime/FILES1
-rw-r--r--vespalib/src/tests/slime/summary-feature-benchmark/FILES1
-rw-r--r--vespalib/src/tests/stash/DESC1
-rw-r--r--vespalib/src/tests/stash/FILES1
-rw-r--r--vespalib/src/tests/stllike/DESC2
-rw-r--r--vespalib/src/tests/stllike/FILES2
-rw-r--r--vespalib/src/tests/stringfmt/DESC1
-rw-r--r--vespalib/src/tests/stringfmt/FILES1
-rw-r--r--vespalib/src/tests/sync/DESC1
-rw-r--r--vespalib/src/tests/sync/FILES1
-rw-r--r--vespalib/src/tests/systemstate/DESC1
-rw-r--r--vespalib/src/tests/systemstate/FILES1
-rw-r--r--vespalib/src/tests/testapp-debug/DESC1
-rw-r--r--vespalib/src/tests/testapp-debug/FILES1
-rw-r--r--vespalib/src/tests/testapp-generic/DESC1
-rw-r--r--vespalib/src/tests/testapp-generic/FILES1
-rw-r--r--vespalib/src/tests/testapp-main/FILES1
-rw-r--r--vespalib/src/tests/testapp-state/DESC1
-rw-r--r--vespalib/src/tests/testapp-state/FILES1
-rw-r--r--vespalib/src/tests/testkit-mt/FILES1
-rw-r--r--vespalib/src/tests/testkit-subset/FILES4
-rw-r--r--vespalib/src/tests/testkit-testhook/DESC1
-rw-r--r--vespalib/src/tests/testkit-testhook/FILES1
-rw-r--r--vespalib/src/tests/text/lowercase/DESC1
-rw-r--r--vespalib/src/tests/text/lowercase/FILES1
-rw-r--r--vespalib/src/tests/text/stringtokenizer/DESC1
-rw-r--r--vespalib/src/tests/text/stringtokenizer/FILES1
-rw-r--r--vespalib/src/tests/text/utf8/DESC1
-rw-r--r--vespalib/src/tests/text/utf8/FILES1
-rw-r--r--vespalib/src/tests/thread/FILES1
-rw-r--r--vespalib/src/tests/time_tracker/FILES1
-rw-r--r--vespalib/src/tests/trace/DESC1
-rw-r--r--vespalib/src/tests/trace/FILES1
-rw-r--r--vespalib/src/tests/traits/FILES1
-rw-r--r--vespalib/src/tests/true/DESC1
-rw-r--r--vespalib/src/tests/true/FILES1
-rw-r--r--vespalib/src/tests/util/generationhandler/DESC1
-rw-r--r--vespalib/src/tests/util/generationhandler/FILES1
-rw-r--r--vespalib/src/tests/util/generationhandler_stress/DESC1
-rw-r--r--vespalib/src/tests/util/generationhandler_stress/FILES1
-rw-r--r--vespalib/src/tests/valgrind/DESC1
-rw-r--r--vespalib/src/tests/valgrind/FILES1
-rw-r--r--vespalib/src/tests/websocket/FILES1
-rw-r--r--vespalib/src/tests/zcurve/DESC1
-rw-r--r--vespalib/src/tests/zcurve/FILES1
-rw-r--r--vespalib/src/vespa/vespalib/net/tls/crypto_codec.h48
-rw-r--r--vespalib/src/vespa/vespalib/net/tls/crypto_codec_adapter.cpp6
-rw-r--r--vespalib/src/vespa/vespalib/net/tls/impl/openssl_crypto_codec_impl.cpp65
-rw-r--r--vespalib/src/vespa/vespalib/net/tls/impl/openssl_crypto_codec_impl.h32
-rwxr-xr-xvespalib/src/vespa/vespalib/testkit/create-test.sh68
-rwxr-xr-xvespalib/src/vespa/vespalib/testkit/generate-test-makefile.sh71
-rwxr-xr-xvespalib/src/vespa/vespalib/testkit/generate-test-report.sh210
-rwxr-xr-xvespalib/src/vespa/vespalib/testkit/run-test.sh241
-rwxr-xr-xvespalib/src/vespa/vespalib/testkit/testrun.sh466
-rw-r--r--vespamalloc/src/tests/allocfree/DESC1
-rw-r--r--vespamalloc/src/tests/allocfree/FILES1
-rw-r--r--vespamalloc/src/tests/doubledelete/DESC1
-rw-r--r--vespamalloc/src/tests/doubledelete/FILES1
-rw-r--r--vespamalloc/src/tests/overwrite/DESC1
-rw-r--r--vespamalloc/src/tests/overwrite/FILES1
-rw-r--r--vespamalloc/src/tests/stacktrace/DESC1
-rw-r--r--vespamalloc/src/tests/stacktrace/FILES1
-rw-r--r--vespamalloc/src/tests/test1/DESC1
-rw-r--r--vespamalloc/src/tests/test1/FILES1
-rw-r--r--vespamalloc/src/tests/test2/DESC1
-rw-r--r--vespamalloc/src/tests/test2/FILES1
-rw-r--r--vsm/src/tests/charbuffer/DESC1
-rw-r--r--vsm/src/tests/charbuffer/FILES1
-rw-r--r--vsm/src/tests/create-test.sh72
-rw-r--r--vsm/src/tests/docsum/DESC1
-rw-r--r--vsm/src/tests/docsum/FILES1
-rw-r--r--vsm/src/tests/document/DESC1
-rw-r--r--vsm/src/tests/document/FILES1
-rw-r--r--vsm/src/tests/searcher/DESC1
-rw-r--r--vsm/src/tests/searcher/FILES1
-rw-r--r--vsm/src/tests/textutil/DESC1
-rw-r--r--vsm/src/tests/textutil/FILES1
790 files changed, 746 insertions, 3002 deletions
diff --git a/athenz-identity-provider-service/src/main/java/com/yahoo/vespa/hosted/athenz/instanceproviderservice/ConfigserverSslContextFactoryProvider.java b/athenz-identity-provider-service/src/main/java/com/yahoo/vespa/hosted/athenz/instanceproviderservice/ConfigserverSslContextFactoryProvider.java
index 1a7224fdc71..61ac8f7a7e2 100644
--- a/athenz-identity-provider-service/src/main/java/com/yahoo/vespa/hosted/athenz/instanceproviderservice/ConfigserverSslContextFactoryProvider.java
+++ b/athenz-identity-provider-service/src/main/java/com/yahoo/vespa/hosted/athenz/instanceproviderservice/ConfigserverSslContextFactoryProvider.java
@@ -124,6 +124,7 @@ public class ConfigserverSslContextFactoryProvider extends AbstractComponent imp
.orElseGet(() -> updateKeystore(configserverIdentity, generateKeystorePassword(), keyProvider, ztsClient, zoneConfig));
factory.setKeyStore(keyStore);
factory.setKeyStorePassword("");
+ factory.setEndpointIdentificationAlgorithm(null); // disable https hostname verification of clients (must be disabled when using Athenz x509 certificates)
return factory;
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
index 88d66f0c608..c7cc04faf95 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
@@ -93,7 +93,6 @@ public class DomAdminV4Builder extends DomAdminBuilderBase {
}
private NodesSpecification createNodesSpecificationForLogserver() {
- // TODO: Enable for main system as well
DeployState deployState = context.getDeployState();
if (deployState.getProperties().useDedicatedNodeForLogserver() &&
context.getApplicationType() == ConfigModelContext.ApplicationType.DEFAULT &&
@@ -124,6 +123,7 @@ public class DomAdminV4Builder extends DomAdminBuilderBase {
logServerCluster.addContainer(container);
admin.addAndInitializeService(deployState.getDeployLogger(), hostResource, container);
admin.setLogserverContainerCluster(logServerCluster);
+ context.getConfigModelRepoAdder().add(logserverClusterModel);
}
private void addLogHandler(ContainerCluster cluster) {
diff --git a/config-provisioning/abi-spec.json b/config-provisioning/abi-spec.json
index 5372e18e109..04e4a7276e2 100644
--- a/config-provisioning/abi-spec.json
+++ b/config-provisioning/abi-spec.json
@@ -695,6 +695,7 @@
"public void <init>(com.yahoo.config.provision.Environment, com.yahoo.config.provision.RegionName)",
"public void <init>(com.yahoo.config.provision.SystemName, com.yahoo.config.provision.Environment, com.yahoo.config.provision.RegionName)",
"public void <init>(com.yahoo.config.provision.CloudName, com.yahoo.config.provision.SystemName, com.yahoo.config.provision.Environment, com.yahoo.config.provision.RegionName)",
+ "public void <init>(com.yahoo.config.provision.CloudName, com.yahoo.config.provision.SystemName, com.yahoo.config.provision.Environment, com.yahoo.config.provision.RegionName, com.yahoo.config.provision.NodeFlavors)",
"public com.yahoo.config.provision.CloudName cloud()",
"public com.yahoo.config.provision.SystemName system()",
"public com.yahoo.config.provision.Environment environment()",
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
index 6b1e1406c8f..f2e32b1b996 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
@@ -41,12 +41,21 @@ public class Zone {
/** Create from system, environment and region. Use for testing. */
public Zone(SystemName systemName, Environment environment, RegionName region) {
- this(CloudName.defaultName(), systemName, environment, region, new FlavorDefaults("default"), null);
+ this(CloudName.defaultName(), systemName, environment, region);
}
/** Create from cloud, system, environment and region. Use for testing. */
public Zone(CloudName cloudName, SystemName systemName, Environment environment, RegionName region) {
- this(cloudName, systemName, environment, region, new FlavorDefaults("default"), null);
+ this(cloudName, systemName, environment, region, null);
+ }
+
+ /** Create from cloud, system, environment, region and node flavors. Use for testing. */
+ public Zone(CloudName cloudName,
+ SystemName systemName,
+ Environment environment,
+ RegionName region,
+ NodeFlavors nodeFlavors) {
+ this(cloudName, systemName, environment, region, new FlavorDefaults("default"), nodeFlavors);
}
private Zone(CloudName cloudName,
diff --git a/config/src/tests/frtconnectionpool/DESC b/config/src/tests/frtconnectionpool/DESC
deleted file mode 100644
index 141c067238f..00000000000
--- a/config/src/tests/frtconnectionpool/DESC
+++ /dev/null
@@ -1 +0,0 @@
-frtconnectionpool test. Take a look at frtconnectionpool.cpp for details.
diff --git a/config/src/tests/frtconnectionpool/FILES b/config/src/tests/frtconnectionpool/FILES
deleted file mode 100644
index d0bcc084a30..00000000000
--- a/config/src/tests/frtconnectionpool/FILES
+++ /dev/null
@@ -1 +0,0 @@
-frtconnectionpool.cpp
diff --git a/configd/src/tests/configd/DESC b/configd/src/tests/configd/DESC
deleted file mode 100644
index b46cf2c5ba3..00000000000
--- a/configd/src/tests/configd/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for the config daemon (aka sentinel)
diff --git a/configd/src/tests/configd/FILES b/configd/src/tests/configd/FILES
deleted file mode 100644
index 63c2a3e08ca..00000000000
--- a/configd/src/tests/configd/FILES
+++ /dev/null
@@ -1 +0,0 @@
-run-sentinel.sh
diff --git a/configd/src/tests/messages/DESC b/configd/src/tests/messages/DESC
deleted file mode 100644
index 089612b9cae..00000000000
--- a/configd/src/tests/messages/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for the configserver protocol.
diff --git a/configd/src/tests/messages/FILES b/configd/src/tests/messages/FILES
deleted file mode 100644
index 139bb6fb364..00000000000
--- a/configd/src/tests/messages/FILES
+++ /dev/null
@@ -1 +0,0 @@
-messages.cpp
diff --git a/configutil/src/tests/model_inspect/FILES b/configutil/src/tests/model_inspect/FILES
deleted file mode 100644
index fb9a8362cdd..00000000000
--- a/configutil/src/tests/model_inspect/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tags_test.cpp
diff --git a/configutil/src/tests/tags/FILES b/configutil/src/tests/tags/FILES
deleted file mode 100644
index fb9a8362cdd..00000000000
--- a/configutil/src/tests/tags/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tags_test.cpp
diff --git a/container-dependency-versions/pom.xml b/container-dependency-versions/pom.xml
index 0f971078ffb..48cd9da9a01 100644
--- a/container-dependency-versions/pom.xml
+++ b/container-dependency-versions/pom.xml
@@ -452,7 +452,7 @@
<guava.version>20.0</guava.version>
<guice.version>3.0</guice.version>
<jaxb.version>2.3.0</jaxb.version>
- <jetty.version>9.4.14.v20181114</jetty.version>
+ <jetty.version>9.4.15.v20190215</jetty.version>
<slf4j.version>1.7.5</slf4j.version>
<!-- These must be kept in sync with version used by current jersey2.version. -->
diff --git a/container-search/src/main/resources/configdefinitions/qr-start.def b/container-search/src/main/resources/configdefinitions/qr-start.def
index 30983b4bcc7..9f92c5001ba 100644
--- a/container-search/src/main/resources/configdefinitions/qr-start.def
+++ b/container-search/src/main/resources/configdefinitions/qr-start.def
@@ -37,8 +37,8 @@ qrs.env string default="" restart
## Set ulimit -v in start script? this is mainly a safeguard against JNI stuff leaking memory.
ulimitv string default="" restart
-## Extra class path entries, forwarded to jdisc_start. Overrides the corresponding env setting.
+## Extra class path entries, forwarded to vespa-start-container_daemon. Overrides the corresponding env setting.
jdisc.classpath_extra string default="" restart
-## Extra export packages entries, forwarded to jdisc_start. Overrides the corresponding env setting.
+## Extra export packages entries, forwarded to vespa-start-container_daemon. Overrides the corresponding env setting.
jdisc.export_packages string default="" restart
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java
index 49788b643e0..b58cac27cdb 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java
@@ -34,6 +34,7 @@ import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.Optional;
import java.util.OptionalLong;
+import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.logging.Logger;
import java.util.stream.Stream;
@@ -218,7 +219,7 @@ public class DeploymentTrigger {
controller.systemVersion());
String reason = "Job triggered manually by " + user;
return (jobType.isProduction() && ! isTested(application, versions)
- ? testJobs(application, versions, reason, clock.instant()).stream()
+ ? testJobs(application, versions, reason, clock.instant(), __ -> true).stream()
: Stream.of(deploymentJob(application, versions, application.change(), jobType, reason, clock.instant())))
.peek(this::trigger)
.map(Job::jobType).collect(toList());
@@ -540,11 +541,18 @@ public class DeploymentTrigger {
* Returns the list of test jobs that should run now, and that need to succeed on the given versions for it to be considered tested.
*/
private List<Job> testJobs(Application application, Versions versions, String reason, Instant availableSince) {
+ return testJobs(application, versions, reason, availableSince, jobType -> canTrigger(jobType, versions, application));
+ }
+
+ /**
+ * Returns the list of test jobs that need to succeed on the given versions for it to be considered tested, filtered by the given condition.
+ */
+ private List<Job> testJobs(Application application, Versions versions, String reason, Instant availableSince, Predicate<JobType> condition) {
List<Job> jobs = new ArrayList<>();
for (JobType jobType : steps(application.deploymentSpec()).testJobs()) {
Optional<JobRun> completion = successOn(application, jobType, versions)
.filter(run -> versions.sourcesMatchIfPresent(run) || jobType == systemTest);
- if ( ! completion.isPresent() && canTrigger(jobType, versions, application))
+ if ( ! completion.isPresent() && condition.test(jobType))
jobs.add(deploymentJob(application, versions, application.change(), jobType, reason, availableSince));
}
return jobs;
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
index 51d4033044f..c1194244dd8 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
@@ -453,31 +453,32 @@ public class InternalStepRunner implements StepRunner {
private void sendNotification(Run run, DualLogger logger) {
Application application = controller.applications().require(run.id().application());
Notifications notifications = application.deploymentSpec().notifications();
- if (notifications != Notifications.none()) {
- boolean newCommit = application.change().application()
- .map(run.versions().targetApplication()::equals)
- .orElse(false);
- When when = newCommit ? failingCommit : failing;
-
- List<String> recipients = new ArrayList<>(notifications.emailAddressesFor(when));
- if (notifications.emailRolesFor(when).contains(author))
- run.versions().targetApplication().authorEmail().ifPresent(recipients::add);
-
- try {
- if (run.status() == outOfCapacity && run.id().type().isProduction())
- controller.mailer().send(mails.outOfCapacity(run.id(), recipients));
- if (run.status() == deploymentFailed)
- controller.mailer().send(mails.deploymentFailure(run.id(), recipients));
- if (run.status() == installationFailed)
- controller.mailer().send(mails.installationFailure(run.id(), recipients));
- if (run.status() == testFailure)
- controller.mailer().send(mails.testFailure(run.id(), recipients));
- if (run.status() == error)
- controller.mailer().send(mails.systemError(run.id(), recipients));
- }
- catch (RuntimeException e) {
- logger.log(INFO, "Exception trying to send mail for " + run.id(), e);
- }
+ boolean newCommit = application.change().application()
+ .map(run.versions().targetApplication()::equals)
+ .orElse(false);
+ When when = newCommit ? failingCommit : failing;
+
+ List<String> recipients = new ArrayList<>(notifications.emailAddressesFor(when));
+ if (notifications.emailRolesFor(when).contains(author))
+ run.versions().targetApplication().authorEmail().ifPresent(recipients::add);
+
+ if (recipients.isEmpty())
+ return;
+
+ try {
+ if (run.status() == outOfCapacity && run.id().type().isProduction())
+ controller.mailer().send(mails.outOfCapacity(run.id(), recipients));
+ if (run.status() == deploymentFailed)
+ controller.mailer().send(mails.deploymentFailure(run.id(), recipients));
+ if (run.status() == installationFailed)
+ controller.mailer().send(mails.installationFailure(run.id(), recipients));
+ if (run.status() == testFailure)
+ controller.mailer().send(mails.testFailure(run.id(), recipients));
+ if (run.status() == error)
+ controller.mailer().send(mails.systemError(run.id(), recipients));
+ }
+ catch (RuntimeException e) {
+ logger.log(INFO, "Exception trying to send mail for " + run.id(), e);
}
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java
index 063248071fb..6e3b6110efb 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java
@@ -236,9 +236,11 @@ public class JobController {
.map(Deployment::applicationVersion)
.distinct()
.forEach(appVersion -> {
- byte[] content = controller.applications().artifacts().getApplicationPackage(application.get().id(), appVersion.id());
- controller.applications().applicationStore().put(application.get().id(), appVersion, content);
+ byte[] content = controller.applications().artifacts().getApplicationPackage(id, appVersion.id());
+ controller.applications().applicationStore().put(id, appVersion, content);
});
+ // Make sure any ongoing upgrade is cancelled, since future jobs will require the tester artifact.
+ application = application.withChange(application.get().change().withoutPlatform().withoutApplication());
}
long run = nextBuild(id);
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/tls/ControllerSslContextFactoryProvider.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/tls/ControllerSslContextFactoryProvider.java
index d20c86528a5..dcc61b13bab 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/tls/ControllerSslContextFactoryProvider.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/tls/ControllerSslContextFactoryProvider.java
@@ -63,6 +63,7 @@ public class ControllerSslContextFactoryProvider extends AbstractComponent imple
factory.setTrustStore(truststore);
factory.setKeyStore(keystore);
factory.setKeyStorePassword("");
+ factory.setEndpointIdentificationAlgorithm(null); // disable https hostname verification of clients (must be disabled when using Athenz x509 certificates)
return factory;
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java
index d6365eff807..686cd1c8dfa 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java
@@ -73,10 +73,14 @@ public class InternalStepRunnerTest {
tester.setEndpoints(appId, JobType.productionUsWest1.zone(tester.tester().controller().system()));
tester.setEndpoints(appId, JobType.productionUsEast3.zone(tester.tester().controller().system()));
+ // Let application have an ongoing upgrade when it switches (but kill the jobs, as the tester assumes they aren't running).
+ tester.tester().upgradeSystem(new Version("7.1"));
+ tester.tester().buildService().clear();
+
tester.deployNewSubmission();
tester.deployNewSubmission();
- tester.deployNewPlatform(new Version("7.1"));
+ tester.deployNewPlatform(new Version("7.2"));
tester.jobs().unregister(appId);
try {
diff --git a/document/src/tests/CMakeLists.txt b/document/src/tests/CMakeLists.txt
index 2561265d361..c0b46d7ccd4 100644
--- a/document/src/tests/CMakeLists.txt
+++ b/document/src/tests/CMakeLists.txt
@@ -5,6 +5,7 @@
vespa_add_executable(document_gtest_runner_app TEST
SOURCES
documentidtest.cpp
+ documentupdatetestcase.cpp
gtest_runner.cpp
DEPENDS
document
@@ -15,7 +16,7 @@ vespa_add_executable(document_gtest_runner_app TEST
vespa_add_test(
NAME document_gtest_runner_app
- COMMAND $<TARGET_FILE:document_gtest_runner_app>
+ COMMAND document_gtest_runner_app
DEPENDS document_gtest_runner_app
)
@@ -35,7 +36,6 @@ vespa_add_executable(document_testrunner_app TEST
structfieldvaluetest.cpp
documenttestcase.cpp
testdocmantest.cpp
- documentupdatetestcase.cpp
fieldpathupdatetestcase.cpp
documentselectparsertest.cpp
bucketselectortest.cpp
diff --git a/document/src/tests/documentupdatetestcase.cpp b/document/src/tests/documentupdatetestcase.cpp
index e28869578fd..c74c211756f 100644
--- a/document/src/tests/documentupdatetestcase.cpp
+++ b/document/src/tests/documentupdatetestcase.cpp
@@ -22,12 +22,11 @@
#include <vespa/document/util/bytebuffer.h>
#include <vespa/eval/tensor/default_tensor_engine.h>
#include <vespa/eval/tensor/tensor.h>
-#include <vespa/vdstestlib/cppunit/macros.h>
#include <vespa/vespalib/objects/nbostream.h>
-#include <vespa/vespalib/testkit/testapp.h>
#include <vespa/vespalib/util/exception.h>
#include <fcntl.h>
+#include <gtest/gtest.h>
#include <unistd.h>
using namespace document::config_builder;
@@ -38,80 +37,6 @@ using vespalib::nbostream;
namespace document {
-struct DocumentUpdateTest : public CppUnit::TestFixture {
-
- void testSimpleUsage();
- void testUpdateApplySingleValue();
- void testClearField();
- void testUpdateArray();
- void testUpdateWeightedSet();
- void testIncrementNonExistingAutoCreateWSetField();
- void testIncrementExistingWSetField();
- void testIncrementWithZeroResultWeightIsRemoved();
- void testReadSerializedFile();
- void testGenerateSerializedFile();
- void testSetBadFieldTypes();
- void testUpdateApplyNoParams();
- void testUpdateApplyNoArrayValues();
- void testUpdateArrayEmptyParamValue();
- void testUpdateWeightedSetEmptyParamValue();
- void testUpdateArrayWrongSubtype();
- void testUpdateWeightedSetWrongSubtype();
- void testMapValueUpdate();
- void tensor_assign_update_can_be_applied();
- void tensor_clear_update_can_be_applied();
- void tensor_add_update_can_be_applied();
- void tensor_modify_update_can_be_applied();
- void tensor_assign_update_can_be_roundtrip_serialized();
- void tensor_add_update_can_be_roundtrip_serialized();
- void tensor_remove_update_can_be_roundtrip_serialized();
- void tensor_modify_update_can_be_roundtrip_serialized();
- void testThatDocumentUpdateFlagsIsWorking();
- void testThatCreateIfNonExistentFlagIsSerialized50AndDeserialized50();
- void testThatCreateIfNonExistentFlagIsSerializedAndDeserialized();
- void array_element_update_can_be_roundtrip_serialized();
- void array_element_update_applies_to_specified_element();
- void array_element_update_for_invalid_index_is_ignored();
-
- CPPUNIT_TEST_SUITE(DocumentUpdateTest);
- CPPUNIT_TEST(testSimpleUsage);
- CPPUNIT_TEST(testUpdateApplySingleValue);
- CPPUNIT_TEST(testClearField);
- CPPUNIT_TEST(testUpdateArray);
- CPPUNIT_TEST(testUpdateWeightedSet);
- CPPUNIT_TEST(testIncrementNonExistingAutoCreateWSetField);
- CPPUNIT_TEST(testIncrementExistingWSetField);
- CPPUNIT_TEST(testIncrementWithZeroResultWeightIsRemoved);
- CPPUNIT_TEST(testReadSerializedFile);
- CPPUNIT_TEST(testGenerateSerializedFile);
- CPPUNIT_TEST(testSetBadFieldTypes);
- CPPUNIT_TEST(testUpdateApplyNoParams);
- CPPUNIT_TEST(testUpdateApplyNoArrayValues);
- CPPUNIT_TEST(testUpdateArrayEmptyParamValue);
- CPPUNIT_TEST(testUpdateWeightedSetEmptyParamValue);
- CPPUNIT_TEST(testUpdateArrayWrongSubtype);
- CPPUNIT_TEST(testUpdateWeightedSetWrongSubtype);
- CPPUNIT_TEST(testMapValueUpdate);
- CPPUNIT_TEST(tensor_assign_update_can_be_applied);
- CPPUNIT_TEST(tensor_clear_update_can_be_applied);
- CPPUNIT_TEST(tensor_add_update_can_be_applied);
- CPPUNIT_TEST(tensor_modify_update_can_be_applied);
- CPPUNIT_TEST(tensor_assign_update_can_be_roundtrip_serialized);
- CPPUNIT_TEST(tensor_add_update_can_be_roundtrip_serialized);
- CPPUNIT_TEST(tensor_remove_update_can_be_roundtrip_serialized);
- CPPUNIT_TEST(tensor_modify_update_can_be_roundtrip_serialized);
- CPPUNIT_TEST(testThatDocumentUpdateFlagsIsWorking);
- CPPUNIT_TEST(testThatCreateIfNonExistentFlagIsSerialized50AndDeserialized50);
- CPPUNIT_TEST(testThatCreateIfNonExistentFlagIsSerializedAndDeserialized);
- CPPUNIT_TEST(array_element_update_can_be_roundtrip_serialized);
- CPPUNIT_TEST(array_element_update_applies_to_specified_element);
- CPPUNIT_TEST(array_element_update_for_invalid_index_is_ignored);
- CPPUNIT_TEST_SUITE_END();
-
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(DocumentUpdateTest);
-
namespace {
ByteBuffer::UP serializeHEAD(const DocumentUpdate & update)
@@ -156,7 +81,7 @@ void testRoundtripSerialize(const UpdateType& update, const DataType &type) {
DocumentTypeRepo repo;
nbostream stream = serialize(update);
std::unique_ptr<UpdateType> copy(dynamic_cast<UpdateType*>(ValueUpdate::createInstance(repo, type, stream).release()));
- CPPUNIT_ASSERT_EQUAL(update, *copy);
+ EXPECT_EQ(update, *copy);
} catch (std::exception& e) {
std::cerr << "Failed while processing update " << update << "\n";
throw;
@@ -165,8 +90,8 @@ void testRoundtripSerialize(const UpdateType& update, const DataType &type) {
}
-void
-DocumentUpdateTest::testSimpleUsage() {
+TEST(DocumentUpdateTest, testSimpleUsage)
+{
DocumenttypesConfigBuilderHelper builder;
builder.document(42, "test",
Struct("test.header").addField("bytef", DataType::T_BYTE).addField("intf", DataType::T_INT),
@@ -186,7 +111,7 @@ DocumentUpdateTest::testSimpleUsage() {
fieldUpdate.addUpdate(AssignValueUpdate(IntFieldValue(1)));
nbostream stream = serialize(fieldUpdate);
FieldUpdate fieldUpdateCopy(repo, *docType, stream);
- CPPUNIT_ASSERT_EQUAL(fieldUpdate, fieldUpdateCopy);
+ EXPECT_EQ(fieldUpdate, fieldUpdateCopy);
// Test that a document update can be serialized
DocumentUpdate docUpdate(repo, *docType, DocumentId("doc::testdoc"));
@@ -210,44 +135,44 @@ DocumentUpdateTest::testSimpleUsage() {
DocumentUpdate upd(repo, *docType, DocumentId("doc::testdoc"));
upd.addUpdate(FieldUpdate(docType->getField("intf")).addUpdate(ClearValueUpdate()));
upd.applyTo(updated);
- CPPUNIT_ASSERT(doc != updated);
- CPPUNIT_ASSERT(! updated.getValue("intf"));
+ EXPECT_NE(doc, updated);
+ EXPECT_FALSE(updated.getValue("intf"));
}
{
Document updated(doc);
DocumentUpdate upd(repo, *docType, DocumentId("doc::testdoc"));
upd.addUpdate(FieldUpdate(docType->getField("intf")).addUpdate(AssignValueUpdate(IntFieldValue(15))));
upd.applyTo(updated);
- CPPUNIT_ASSERT(doc != updated);
- CPPUNIT_ASSERT_EQUAL(15, updated.getValue("intf")->getAsInt());
+ EXPECT_NE(doc, updated);
+ EXPECT_EQ(15, updated.getValue("intf")->getAsInt());
}
{
Document updated(doc);
DocumentUpdate upd(repo, *docType, DocumentId("doc::testdoc"));
upd.addUpdate(FieldUpdate(docType->getField("intf")).addUpdate(ArithmeticValueUpdate(ArithmeticValueUpdate::Add, 15)));
upd.applyTo(updated);
- CPPUNIT_ASSERT(doc != updated);
- CPPUNIT_ASSERT_EQUAL(20, updated.getValue("intf")->getAsInt());
+ EXPECT_NE(doc, updated);
+ EXPECT_EQ(20, updated.getValue("intf")->getAsInt());
}
{
Document updated(doc);
DocumentUpdate upd(repo, *docType, DocumentId("doc::testdoc"));
upd.addUpdate(FieldUpdate(docType->getField("intarr")).addUpdate(AddValueUpdate(IntFieldValue(4))));
upd.applyTo(updated);
- CPPUNIT_ASSERT(doc != updated);
+ EXPECT_NE(doc, updated);
std::unique_ptr<ArrayFieldValue> val(dynamic_cast<ArrayFieldValue*>(updated.getValue("intarr").release()));
- CPPUNIT_ASSERT_EQUAL(size_t(3), val->size());
- CPPUNIT_ASSERT_EQUAL(4, (*val)[2].getAsInt());
+ ASSERT_EQ(size_t(3), val->size());
+ EXPECT_EQ(4, (*val)[2].getAsInt());
}
{
Document updated(doc);
DocumentUpdate upd(repo, *docType, DocumentId("doc::testdoc"));
upd.addUpdate(FieldUpdate(docType->getField("intarr")).addUpdate(RemoveValueUpdate(IntFieldValue(3))));
upd.applyTo(updated);
- CPPUNIT_ASSERT(doc != updated);
+ EXPECT_NE(doc, updated);
std::unique_ptr<ArrayFieldValue> val(dynamic_cast<ArrayFieldValue*>(updated.getValue("intarr").release()));
- CPPUNIT_ASSERT_EQUAL(size_t(1), val->size());
- CPPUNIT_ASSERT_EQUAL(7, (*val)[0].getAsInt());
+ ASSERT_EQ(size_t(1), val->size());
+ EXPECT_EQ(7, (*val)[0].getAsInt());
}
{
Document updated(doc);
@@ -255,50 +180,47 @@ DocumentUpdateTest::testSimpleUsage() {
upd.addUpdate(FieldUpdate(docType->getField("bytef"))
.addUpdate(ArithmeticValueUpdate(ArithmeticValueUpdate::Add, 15)));
upd.applyTo(updated);
- CPPUNIT_ASSERT(doc != updated);
- CPPUNIT_ASSERT_EQUAL(15, (int) updated.getValue("bytef")->getAsByte());
+ EXPECT_NE(doc, updated);
+ EXPECT_EQ(15, (int) updated.getValue("bytef")->getAsByte());
}
}
-void
-DocumentUpdateTest::testClearField()
+TEST(DocumentUpdateTest, testClearField)
{
// Create a document.
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
doc->setValue(doc->getField("headerval"), IntFieldValue(4));
- CPPUNIT_ASSERT_EQUAL(4, doc->getValue("headerval")->getAsInt());
+ EXPECT_EQ(4, doc->getValue("headerval")->getAsInt());
// Apply an update.
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
.addUpdate(FieldUpdate(doc->getField("headerval")).addUpdate(AssignValueUpdate()))
.applyTo(*doc);
- CPPUNIT_ASSERT(!doc->getValue("headerval"));
+ EXPECT_FALSE(doc->getValue("headerval"));
}
-void
-DocumentUpdateTest::testUpdateApplySingleValue()
+TEST(DocumentUpdateTest, testUpdateApplySingleValue)
{
// Create a document.
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
doc->setValue(doc->getField("headerval"), IntFieldValue(4));
- CPPUNIT_ASSERT_EQUAL(4, doc->getValue("headerval")->getAsInt());
+ EXPECT_EQ(4, doc->getValue("headerval")->getAsInt());
// Apply an update.
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
.addUpdate(FieldUpdate(doc->getField("headerval")).addUpdate(AssignValueUpdate(IntFieldValue(9))))
.applyTo(*doc);
- CPPUNIT_ASSERT_EQUAL(9, doc->getValue("headerval")->getAsInt());
+ EXPECT_EQ(9, doc->getValue("headerval")->getAsInt());
}
-void
-DocumentUpdateTest::testUpdateArray()
+TEST(DocumentUpdateTest, testUpdateArray)
{
// Create a document.
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*)NULL, doc->getValue(doc->getField("tags")).get());
+ EXPECT_EQ((document::FieldValue*)NULL, doc->getValue(doc->getField("tags")).get());
// Assign array field.
ArrayFieldValue myarray(doc->getType().getField("tags").getDataType());
@@ -309,9 +231,9 @@ DocumentUpdateTest::testUpdateArray()
.addUpdate(FieldUpdate(doc->getField("tags")).addUpdate(AssignValueUpdate(myarray)))
.applyTo(*doc);
auto fval1(doc->getAs<ArrayFieldValue>(doc->getField("tags")));
- CPPUNIT_ASSERT_EQUAL((size_t) 2, fval1->size());
- CPPUNIT_ASSERT_EQUAL(std::string("foo"), std::string((*fval1)[0].getAsString()));
- CPPUNIT_ASSERT_EQUAL(std::string("bar"), std::string((*fval1)[1].getAsString()));
+ ASSERT_EQ((size_t) 2, fval1->size());
+ EXPECT_EQ(std::string("foo"), std::string((*fval1)[0].getAsString()));
+ EXPECT_EQ(std::string("bar"), std::string((*fval1)[1].getAsString()));
// Append array field
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
@@ -321,24 +243,19 @@ DocumentUpdateTest::testUpdateArray()
.applyTo(*doc);
std::unique_ptr<ArrayFieldValue>
fval2(doc->getAs<ArrayFieldValue>(doc->getField("tags")));
- CPPUNIT_ASSERT_EQUAL((size_t) 4, fval2->size());
- CPPUNIT_ASSERT_EQUAL(std::string("foo"), std::string((*fval2)[0].getAsString()));
- CPPUNIT_ASSERT_EQUAL(std::string("bar"), std::string((*fval2)[1].getAsString()));
- CPPUNIT_ASSERT_EQUAL(std::string("another"), std::string((*fval2)[2].getAsString()));
- CPPUNIT_ASSERT_EQUAL(std::string("tag"), std::string((*fval2)[3].getAsString()));
+ ASSERT_EQ((size_t) 4, fval2->size());
+ EXPECT_EQ(std::string("foo"), std::string((*fval2)[0].getAsString()));
+ EXPECT_EQ(std::string("bar"), std::string((*fval2)[1].getAsString()));
+ EXPECT_EQ(std::string("another"), std::string((*fval2)[2].getAsString()));
+ EXPECT_EQ(std::string("tag"), std::string((*fval2)[3].getAsString()));
// Append single value.
- try {
+ ASSERT_THROW(
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
.addUpdate(FieldUpdate(doc->getField("tags"))
.addUpdate(AssignValueUpdate(StringFieldValue("THROW MEH!"))))
- .applyTo(*doc);
- CPPUNIT_FAIL("Expected exception when assinging a string value to an "
- "array field.");
- }
- catch (std::exception& e) {
- ; // fprintf(stderr, "Got exception => OK: %s\n", e.what());
- }
+ .applyTo(*doc),
+ std::exception) << "Expected exception when assigning a string value to an array field.";
// Remove array field.
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
@@ -347,35 +264,29 @@ DocumentUpdateTest::testUpdateArray()
.addUpdate(RemoveValueUpdate(StringFieldValue("tag"))))
.applyTo(*doc);
auto fval3(doc->getAs<ArrayFieldValue>(doc->getField("tags")));
- CPPUNIT_ASSERT_EQUAL((size_t) 2, fval3->size());
- CPPUNIT_ASSERT_EQUAL(std::string("bar"), std::string((*fval3)[0].getAsString()));
- CPPUNIT_ASSERT_EQUAL(std::string("another"), std::string((*fval3)[1].getAsString()));
+ ASSERT_EQ((size_t) 2, fval3->size());
+ EXPECT_EQ(std::string("bar"), std::string((*fval3)[0].getAsString()));
+ EXPECT_EQ(std::string("another"), std::string((*fval3)[1].getAsString()));
// Remove array from array.
ArrayFieldValue myarray2(doc->getType().getField("tags").getDataType());
myarray2.add(StringFieldValue("foo"));
myarray2.add(StringFieldValue("bar"));
- try {
+ ASSERT_THROW(
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
.addUpdate(FieldUpdate(doc->getField("tags"))
.addUpdate(RemoveValueUpdate(myarray2)))
- .applyTo(*doc);
- CPPUNIT_FAIL("Expected exception when removing an array from a "
- "string array.");
- }
- catch (std::exception& e) {
- ; // fprintf(stderr, "Got exception => OK: %s\n", e.what());
- }
+ .applyTo(*doc),
+ std::exception) << "Expected exception when removing an array from a string array.";
}
-void
-DocumentUpdateTest::testUpdateWeightedSet()
+TEST(DocumentUpdateTest, testUpdateWeightedSet)
{
// Create a test document
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
const Field& field(doc->getType().getField("stringweightedset"));
- CPPUNIT_ASSERT_EQUAL((FieldValue*) 0, doc->getValue(field).get());
+ EXPECT_EQ((FieldValue*) 0, doc->getValue(field).get());
// Assign weightedset field
WeightedSetFieldValue wset(field.getDataType());
@@ -385,13 +296,13 @@ DocumentUpdateTest::testUpdateWeightedSet()
.addUpdate(FieldUpdate(field).addUpdate(AssignValueUpdate(wset)))
.applyTo(*doc);
auto fval1(doc->getAs<WeightedSetFieldValue>(field));
- CPPUNIT_ASSERT_EQUAL((size_t) 2, fval1->size());
- CPPUNIT_ASSERT(fval1->contains(StringFieldValue("foo")));
- CPPUNIT_ASSERT(fval1->find(StringFieldValue("foo")) != fval1->end());
- CPPUNIT_ASSERT_EQUAL(3, fval1->get(StringFieldValue("foo"), 0));
- CPPUNIT_ASSERT(fval1->contains(StringFieldValue("bar")));
- CPPUNIT_ASSERT(fval1->find(StringFieldValue("bar")) != fval1->end());
- CPPUNIT_ASSERT_EQUAL(14, fval1->get(StringFieldValue("bar"), 0));
+ ASSERT_EQ((size_t) 2, fval1->size());
+ EXPECT_TRUE(fval1->contains(StringFieldValue("foo")));
+ EXPECT_NE(fval1->find(StringFieldValue("foo")), fval1->end());
+ EXPECT_EQ(3, fval1->get(StringFieldValue("foo"), 0));
+ EXPECT_TRUE(fval1->contains(StringFieldValue("bar")));
+ EXPECT_NE(fval1->find(StringFieldValue("bar")), fval1->end());
+ EXPECT_EQ(14, fval1->get(StringFieldValue("bar"), 0));
// Do a second assign
WeightedSetFieldValue wset2(field.getDataType());
@@ -402,13 +313,13 @@ DocumentUpdateTest::testUpdateWeightedSet()
.addUpdate(AssignValueUpdate(wset2)))
.applyTo(*doc);
auto fval2(doc->getAs<WeightedSetFieldValue>(field));
- CPPUNIT_ASSERT_EQUAL((size_t) 2, fval2->size());
- CPPUNIT_ASSERT(fval2->contains(StringFieldValue("foo")));
- CPPUNIT_ASSERT(fval2->find(StringFieldValue("foo")) != fval1->end());
- CPPUNIT_ASSERT_EQUAL(16, fval2->get(StringFieldValue("foo"), 0));
- CPPUNIT_ASSERT(fval2->contains(StringFieldValue("bar")));
- CPPUNIT_ASSERT(fval2->find(StringFieldValue("bar")) != fval1->end());
- CPPUNIT_ASSERT_EQUAL(24, fval2->get(StringFieldValue("bar"), 0));
+ ASSERT_EQ((size_t) 2, fval2->size());
+ EXPECT_TRUE(fval2->contains(StringFieldValue("foo")));
+ EXPECT_NE(fval2->find(StringFieldValue("foo")), fval1->end());
+ EXPECT_EQ(16, fval2->get(StringFieldValue("foo"), 0));
+ EXPECT_TRUE(fval2->contains(StringFieldValue("bar")));
+ EXPECT_NE(fval2->find(StringFieldValue("bar")), fval1->end());
+ EXPECT_EQ(24, fval2->get(StringFieldValue("bar"), 0));
// Append weighted field
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
@@ -418,13 +329,13 @@ DocumentUpdateTest::testUpdateWeightedSet()
.applyTo(*doc);
std::unique_ptr<WeightedSetFieldValue>
fval3(doc->getAs<WeightedSetFieldValue>(field));
- CPPUNIT_ASSERT_EQUAL((size_t) 3, fval3->size());
- CPPUNIT_ASSERT(fval3->contains(StringFieldValue("foo")));
- CPPUNIT_ASSERT_EQUAL(3, fval3->get(StringFieldValue("foo"), 0));
- CPPUNIT_ASSERT(fval3->contains(StringFieldValue("bar")));
- CPPUNIT_ASSERT_EQUAL(24, fval3->get(StringFieldValue("bar"), 0));
- CPPUNIT_ASSERT(fval3->contains(StringFieldValue("too")));
- CPPUNIT_ASSERT_EQUAL(14, fval3->get(StringFieldValue("too"), 0));
+ ASSERT_EQ((size_t) 3, fval3->size());
+ EXPECT_TRUE(fval3->contains(StringFieldValue("foo")));
+ EXPECT_EQ(3, fval3->get(StringFieldValue("foo"), 0));
+ EXPECT_TRUE(fval3->contains(StringFieldValue("bar")));
+ EXPECT_EQ(24, fval3->get(StringFieldValue("bar"), 0));
+ EXPECT_TRUE(fval3->contains(StringFieldValue("too")));
+ EXPECT_EQ(14, fval3->get(StringFieldValue("too"), 0));
// Remove weighted field
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
@@ -433,11 +344,11 @@ DocumentUpdateTest::testUpdateWeightedSet()
.addUpdate(RemoveValueUpdate(StringFieldValue("too"))))
.applyTo(*doc);
auto fval4(doc->getAs<WeightedSetFieldValue>(field));
- CPPUNIT_ASSERT_EQUAL((size_t) 1, fval4->size());
- CPPUNIT_ASSERT(!fval4->contains(StringFieldValue("foo")));
- CPPUNIT_ASSERT(fval4->contains(StringFieldValue("bar")));
- CPPUNIT_ASSERT_EQUAL(24, fval4->get(StringFieldValue("bar"), 0));
- CPPUNIT_ASSERT(!fval4->contains(StringFieldValue("too")));
+ ASSERT_EQ((size_t) 1, fval4->size());
+ EXPECT_FALSE(fval4->contains(StringFieldValue("foo")));
+ EXPECT_TRUE(fval4->contains(StringFieldValue("bar")));
+ EXPECT_EQ(24, fval4->get(StringFieldValue("bar"), 0));
+ EXPECT_FALSE(fval4->contains(StringFieldValue("too")));
}
namespace {
@@ -482,8 +393,7 @@ WeightedSetAutoCreateFixture::WeightedSetAutoCreateFixture()
}
} // anon ns
-void
-DocumentUpdateTest::testIncrementNonExistingAutoCreateWSetField()
+TEST(DocumentUpdateTest, testIncrementNonExistingAutoCreateWSetField)
{
WeightedSetAutoCreateFixture fixture;
@@ -491,13 +401,12 @@ DocumentUpdateTest::testIncrementNonExistingAutoCreateWSetField()
std::unique_ptr<WeightedSetFieldValue> ws(
fixture.doc.getAs<WeightedSetFieldValue>(fixture.field));
- CPPUNIT_ASSERT_EQUAL(size_t(1), ws->size());
- CPPUNIT_ASSERT(ws->contains(StringFieldValue("foo")));
- CPPUNIT_ASSERT_EQUAL(1, ws->get(StringFieldValue("foo"), 0));
+ ASSERT_EQ(size_t(1), ws->size());
+ EXPECT_TRUE(ws->contains(StringFieldValue("foo")));
+ EXPECT_EQ(1, ws->get(StringFieldValue("foo"), 0));
}
-void
-DocumentUpdateTest::testIncrementExistingWSetField()
+TEST(DocumentUpdateTest, testIncrementExistingWSetField)
{
WeightedSetAutoCreateFixture fixture;
{
@@ -508,13 +417,12 @@ DocumentUpdateTest::testIncrementExistingWSetField()
fixture.applyUpdateToDocument();
auto ws(fixture.doc.getAs<WeightedSetFieldValue>(fixture.field));
- CPPUNIT_ASSERT_EQUAL(size_t(2), ws->size());
- CPPUNIT_ASSERT(ws->contains(StringFieldValue("foo")));
- CPPUNIT_ASSERT_EQUAL(1, ws->get(StringFieldValue("foo"), 0));
+ ASSERT_EQ(size_t(2), ws->size());
+ EXPECT_TRUE(ws->contains(StringFieldValue("foo")));
+ EXPECT_EQ(1, ws->get(StringFieldValue("foo"), 0));
}
-void
-DocumentUpdateTest::testIncrementWithZeroResultWeightIsRemoved()
+TEST(DocumentUpdateTest, testIncrementWithZeroResultWeightIsRemoved)
{
WeightedSetAutoCreateFixture fixture;
fixture.update.addUpdate(FieldUpdate(fixture.field)
@@ -524,18 +432,18 @@ DocumentUpdateTest::testIncrementWithZeroResultWeightIsRemoved()
fixture.applyUpdateToDocument();
auto ws(fixture.doc.getAs<WeightedSetFieldValue>(fixture.field));
- CPPUNIT_ASSERT_EQUAL(size_t(1), ws->size());
- CPPUNIT_ASSERT(ws->contains(StringFieldValue("foo")));
- CPPUNIT_ASSERT(!ws->contains(StringFieldValue("baz")));
+ ASSERT_EQ(size_t(1), ws->size());
+ EXPECT_TRUE(ws->contains(StringFieldValue("foo")));
+ EXPECT_FALSE(ws->contains(StringFieldValue("baz")));
}
-void DocumentUpdateTest::testReadSerializedFile()
+TEST(DocumentUpdateTest, testReadSerializedFile)
{
// Reads a file serialized from java
- const std::string file_name = TEST_PATH("data/crossplatform-java-cpp-doctypes.cfg");
+ const std::string file_name = "data/crossplatform-java-cpp-doctypes.cfg";
DocumentTypeRepo repo(readDocumenttypesConfig(file_name));
- int fd = open(TEST_PATH("data/serializeupdatejava.dat").c_str(), O_RDONLY);
+ int fd = open("data/serializeupdatejava.dat" , O_RDONLY);
int len = lseek(fd,0,SEEK_END);
ByteBuffer buf(len);
@@ -550,61 +458,61 @@ void DocumentUpdateTest::testReadSerializedFile()
DocumentUpdate& upd(*updp);
const DocumentType *type = repo.getDocumentType("serializetest");
- CPPUNIT_ASSERT_EQUAL(DocumentId(DocIdString("update", "test")), upd.getId());
- CPPUNIT_ASSERT_EQUAL(*type, upd.getType());
+ EXPECT_EQ(DocumentId(DocIdString("update", "test")), upd.getId());
+ EXPECT_EQ(*type, upd.getType());
// Verify assign value update.
FieldUpdate serField = upd.getUpdates()[1];
- CPPUNIT_ASSERT_EQUAL(serField.getField().getId(), type->getField("intfield").getId());
+ EXPECT_EQ(serField.getField().getId(), type->getField("intfield").getId());
const ValueUpdate* serValue = &serField[0];
- CPPUNIT_ASSERT_EQUAL(serValue->getType(), ValueUpdate::Assign);
+ ASSERT_EQ(serValue->getType(), ValueUpdate::Assign);
const AssignValueUpdate* assign(static_cast<const AssignValueUpdate*>(serValue));
- CPPUNIT_ASSERT_EQUAL(IntFieldValue(4), static_cast<const IntFieldValue&>(assign->getValue()));
+ EXPECT_EQ(IntFieldValue(4), static_cast<const IntFieldValue&>(assign->getValue()));
// Verify clear field update.
serField = upd.getUpdates()[2];
- CPPUNIT_ASSERT_EQUAL(serField.getField().getId(), type->getField("floatfield").getId());
+ EXPECT_EQ(serField.getField().getId(), type->getField("floatfield").getId());
serValue = &serField[0];
- CPPUNIT_ASSERT_EQUAL(serValue->getType(), ValueUpdate::Clear);
- CPPUNIT_ASSERT(serValue->inherits(ClearValueUpdate::classId));
+ EXPECT_EQ(serValue->getType(), ValueUpdate::Clear);
+ EXPECT_TRUE(serValue->inherits(ClearValueUpdate::classId));
// Verify add value update.
serField = upd.getUpdates()[0];
- CPPUNIT_ASSERT_EQUAL(serField.getField().getId(), type->getField("arrayoffloatfield").getId());
+ EXPECT_EQ(serField.getField().getId(), type->getField("arrayoffloatfield").getId());
serValue = &serField[0];
- CPPUNIT_ASSERT_EQUAL(serValue->getType(), ValueUpdate::Add);
+ ASSERT_EQ(serValue->getType(), ValueUpdate::Add);
const AddValueUpdate* add = static_cast<const AddValueUpdate*>(serValue);
const FieldValue* value = &add->getValue();
- CPPUNIT_ASSERT(value->inherits(FloatFieldValue::classId));
- CPPUNIT_ASSERT_EQUAL(value->getAsFloat(), 5.00f);
+ EXPECT_TRUE(value->inherits(FloatFieldValue::classId));
+ EXPECT_FLOAT_EQ(value->getAsFloat(), 5.00f);
serValue = &serField[1];
- CPPUNIT_ASSERT_EQUAL(serValue->getType(), ValueUpdate::Add);
+ ASSERT_EQ(serValue->getType(), ValueUpdate::Add);
add = static_cast<const AddValueUpdate*>(serValue);
value = &add->getValue();
- CPPUNIT_ASSERT(value->inherits(FloatFieldValue::classId));
- CPPUNIT_ASSERT_EQUAL(value->getAsFloat(), 4.23f);
+ EXPECT_TRUE(value->inherits(FloatFieldValue::classId));
+ EXPECT_FLOAT_EQ(value->getAsFloat(), 4.23f);
serValue = &serField[2];
- CPPUNIT_ASSERT_EQUAL(serValue->getType(), ValueUpdate::Add);
+ ASSERT_EQ(serValue->getType(), ValueUpdate::Add);
add = static_cast<const AddValueUpdate*>(serValue);
value = &add->getValue();
- CPPUNIT_ASSERT(value->inherits(FloatFieldValue::classId));
- CPPUNIT_ASSERT_EQUAL(value->getAsFloat(), -1.00f);
+ EXPECT_TRUE(value->inherits(FloatFieldValue::classId));
+ EXPECT_FLOAT_EQ(value->getAsFloat(), -1.00f);
}
-void DocumentUpdateTest::testGenerateSerializedFile()
+TEST(DocumentUpdateTest, testGenerateSerializedFile)
{
// Tests nothing, only generates a file for java test
- const std::string file_name = TEST_PATH("data/crossplatform-java-cpp-doctypes.cfg");
+ const std::string file_name = "data/crossplatform-java-cpp-doctypes.cfg";
DocumentTypeRepo repo(readDocumenttypesConfig(file_name));
const DocumentType *type(repo.getDocumentType("serializetest"));
@@ -626,7 +534,7 @@ void DocumentUpdateTest::testGenerateSerializedFile()
ArithmeticValueUpdate(ArithmeticValueUpdate::Mul, 2))));
ByteBuffer::UP buf(serialize42(upd));
- int fd = open(TEST_PATH("data/serializeupdatecpp.dat").c_str(), O_WRONLY | O_TRUNC | O_CREAT, 0644);
+ int fd = open("data/serializeupdatecpp.dat", O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (write(fd, buf->getBuffer(), buf->getPos()) != (ssize_t)buf->getPos()) {
throw vespalib::Exception("read failed");
}
@@ -634,59 +542,48 @@ void DocumentUpdateTest::testGenerateSerializedFile()
}
-void DocumentUpdateTest::testSetBadFieldTypes()
+TEST(DocumentUpdateTest, testSetBadFieldTypes)
{
// Create a test document
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*)NULL, doc->getValue(doc->getField("headerval")).get());
+ EXPECT_EQ((document::FieldValue*)NULL, doc->getValue(doc->getField("headerval")).get());
// Assign a float value to an int field.
DocumentUpdate update(docMan.getTypeRepo(), *doc->getDataType(), doc->getId());
- try {
+ ASSERT_THROW(
update.addUpdate(FieldUpdate(doc->getField("headerval"))
- .addUpdate(AssignValueUpdate(FloatFieldValue(4.00f))));
- CPPUNIT_FAIL("Expected exception when adding a float to an int field.");
- } catch (std::exception& e) {
- ; // fprintf(stderr, "Got exception => OK: %s\n", e.what());
- }
+ .addUpdate(AssignValueUpdate(FloatFieldValue(4.00f)))),
+ std::exception) << "Expected exception when adding a float to an int field.";
update.applyTo(*doc);
// Verify that the field is NOT set in the document.
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*)NULL,
+ EXPECT_EQ((document::FieldValue*)NULL,
doc->getValue(doc->getField("headerval")).get());
}
-void
-DocumentUpdateTest::testUpdateApplyNoParams()
+TEST(DocumentUpdateTest, testUpdateApplyNoParams)
{
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*)NULL, doc->getValue(doc->getField("tags")).get());
+ EXPECT_EQ((document::FieldValue*)NULL, doc->getValue(doc->getField("tags")).get());
- // Assign array field with no parameters - illegal.
DocumentUpdate update(docMan.getTypeRepo(), *doc->getDataType(), doc->getId());
- try {
- update.addUpdate(FieldUpdate(doc->getField("tags")).addUpdate(AssignValueUpdate()));
- CPPUNIT_FAIL("Expected exception when assign a NULL value.");
- } catch (std::exception& e) {
- ; // fprintf(stderr, "Got exception => OK: %s\n", e.what());
- }
+ update.addUpdate(FieldUpdate(doc->getField("tags")).addUpdate(AssignValueUpdate()));
update.applyTo(*doc);
// Verify that the field was cleared in the document.
- CPPUNIT_ASSERT(!doc->hasValue(doc->getField("tags")));
+ EXPECT_FALSE(doc->hasValue(doc->getField("tags")));
}
-void
-DocumentUpdateTest::testUpdateApplyNoArrayValues()
+TEST(DocumentUpdateTest, testUpdateApplyNoArrayValues)
{
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
const Field &field(doc->getType().getField("tags"));
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*) 0, doc->getValue(field).get());
+ EXPECT_EQ((document::FieldValue*) 0, doc->getValue(field).get());
// Assign array field with no array values = empty array
DocumentUpdate update(docMan.getTypeRepo(), *doc->getDataType(), doc->getId());
@@ -697,18 +594,17 @@ DocumentUpdateTest::testUpdateApplyNoArrayValues()
// Verify that the field was set in the document
std::unique_ptr<ArrayFieldValue> fval(doc->getAs<ArrayFieldValue>(field));
- CPPUNIT_ASSERT(fval.get());
- CPPUNIT_ASSERT_EQUAL((size_t) 0, fval->size());
+ ASSERT_TRUE(fval.get());
+ EXPECT_EQ((size_t) 0, fval->size());
}
-void
-DocumentUpdateTest::testUpdateArrayEmptyParamValue()
+TEST(DocumentUpdateTest, testUpdateArrayEmptyParamValue)
{
// Create a test document.
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
const Field &field(doc->getType().getField("tags"));
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*) 0, doc->getValue(field).get());
+ EXPECT_EQ((document::FieldValue*) 0, doc->getValue(field).get());
// Assign array field with no array values = empty array.
DocumentUpdate update(docMan.getTypeRepo(), *doc->getDataType(), doc->getId());
@@ -717,8 +613,8 @@ DocumentUpdateTest::testUpdateArrayEmptyParamValue()
// Verify that the field was set in the document.
std::unique_ptr<ArrayFieldValue> fval1(doc->getAs<ArrayFieldValue>(field));
- CPPUNIT_ASSERT(fval1.get());
- CPPUNIT_ASSERT_EQUAL((size_t) 0, fval1->size());
+ ASSERT_TRUE(fval1.get());
+ EXPECT_EQ((size_t) 0, fval1->size());
// Remove array field.
DocumentUpdate update2(docMan.getTypeRepo(), *doc->getDataType(), doc->getId());
@@ -727,17 +623,16 @@ DocumentUpdateTest::testUpdateArrayEmptyParamValue()
// Verify that the field was cleared in the document.
std::unique_ptr<ArrayFieldValue> fval2(doc->getAs<ArrayFieldValue>(field));
- CPPUNIT_ASSERT(!fval2);
+ EXPECT_FALSE(fval2);
}
-void
-DocumentUpdateTest::testUpdateWeightedSetEmptyParamValue()
+TEST(DocumentUpdateTest, testUpdateWeightedSetEmptyParamValue)
{
// Create a test document
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
const Field &field(doc->getType().getField("stringweightedset"));
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*) 0, doc->getValue(field).get());
+ EXPECT_EQ((document::FieldValue*) 0, doc->getValue(field).get());
// Assign weighted set with no items = empty set.
DocumentUpdate update(docMan.getTypeRepo(), *doc->getDataType(), doc->getId());
@@ -746,8 +641,8 @@ DocumentUpdateTest::testUpdateWeightedSetEmptyParamValue()
// Verify that the field was set in the document.
auto fval1(doc->getAs<WeightedSetFieldValue>(field));
- CPPUNIT_ASSERT(fval1.get());
- CPPUNIT_ASSERT_EQUAL((size_t) 0, fval1->size());
+ ASSERT_TRUE(fval1.get());
+ EXPECT_EQ((size_t) 0, fval1->size());
// Remove weighted set field.
DocumentUpdate update2(docMan.getTypeRepo(), *doc->getDataType(), doc->getId());
@@ -756,67 +651,58 @@ DocumentUpdateTest::testUpdateWeightedSetEmptyParamValue()
// Verify that the field was cleared in the document.
auto fval2(doc->getAs<WeightedSetFieldValue>(field));
- CPPUNIT_ASSERT(!fval2);
+ EXPECT_FALSE(fval2);
}
-void
-DocumentUpdateTest::testUpdateArrayWrongSubtype()
+TEST(DocumentUpdateTest, testUpdateArrayWrongSubtype)
{
// Create a test document
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
const Field &field(doc->getType().getField("tags"));
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*) 0, doc->getValue(field).get());
+ EXPECT_EQ((document::FieldValue*) 0, doc->getValue(field).get());
// Assign int values to string array.
DocumentUpdate update(docMan.getTypeRepo(), *doc->getDataType(), doc->getId());
- try {
+ ASSERT_THROW(
update.addUpdate(FieldUpdate(field)
.addUpdate(AddValueUpdate(IntFieldValue(123)))
- .addUpdate(AddValueUpdate(IntFieldValue(456))));
- CPPUNIT_FAIL("Expected exception when adding wrong type.");
- } catch (std::exception& e) {
- ; // fprintf(stderr, "Got exception => OK: %s\n", e.what());
- }
+ .addUpdate(AddValueUpdate(IntFieldValue(456)))),
+ std::exception) << "Expected exception when adding wrong type.";
// Apply update
update.applyTo(*doc);
// Verify that the field was NOT set in the document
FieldValue::UP fval(doc->getValue(field));
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*) 0, fval.get());
+ EXPECT_EQ((document::FieldValue*) 0, fval.get());
}
-void
-DocumentUpdateTest::testUpdateWeightedSetWrongSubtype()
+TEST(DocumentUpdateTest, testUpdateWeightedSetWrongSubtype)
{
// Create a test document
TestDocMan docMan;
Document::UP doc(docMan.createDocument());
const Field &field(doc->getType().getField("stringweightedset"));
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*) 0, doc->getValue(field).get());
+ EXPECT_EQ((document::FieldValue*) 0, doc->getValue(field).get());
// Assign int values to string array.
DocumentUpdate update(docMan.getTypeRepo(), *doc->getDataType(), doc->getId());
- try {
+ ASSERT_THROW(
update.addUpdate(FieldUpdate(field)
.addUpdate(AddValueUpdate(IntFieldValue(123)).setWeight(1000))
- .addUpdate(AddValueUpdate(IntFieldValue(456)).setWeight(2000)));
- CPPUNIT_FAIL("Expected exception when adding wrong type.");
- } catch (std::exception& e) {
- ; // fprintf(stderr, "Got exception => OK: %s\n", e.what());
- }
+ .addUpdate(AddValueUpdate(IntFieldValue(456)).setWeight(2000))),
+ std::exception) << "Expected exception when adding wrong type.";
// Apply update
update.applyTo(*doc);
// Verify that the field was NOT set in the document
FieldValue::UP fval(doc->getValue(field));
- CPPUNIT_ASSERT_EQUAL((document::FieldValue*) 0, fval.get());
+ EXPECT_EQ((document::FieldValue*) 0, fval.get());
}
-void
-DocumentUpdateTest::testMapValueUpdate()
+TEST(DocumentUpdateTest, testMapValueUpdate)
{
// Create a test document
TestDocMan docMan;
@@ -835,7 +721,7 @@ DocumentUpdateTest::testMapValueUpdate()
.applyTo(*doc);
std::unique_ptr<WeightedSetFieldValue> fv1 =
doc->getAs<WeightedSetFieldValue>(field1);
- CPPUNIT_ASSERT(fv1->size() == 0);
+ EXPECT_EQ(0, fv1->size());
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
.addUpdate(FieldUpdate(field2)
@@ -843,9 +729,9 @@ DocumentUpdateTest::testMapValueUpdate()
ArithmeticValueUpdate(ArithmeticValueUpdate::Add, 1.0))))
.applyTo(*doc);
auto fv2 = doc->getAs<WeightedSetFieldValue>(field2);
- CPPUNIT_ASSERT(fv2->size() == 1);
+ EXPECT_EQ(1, fv2->size());
- CPPUNIT_ASSERT(fv1->find(StringFieldValue("apple")) == fv1->end());
+ EXPECT_EQ(fv1->find(StringFieldValue("apple")), fv1->end());
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
.addUpdate(FieldUpdate(field1).addUpdate(ClearValueUpdate()))
.applyTo(*doc);
@@ -855,16 +741,16 @@ DocumentUpdateTest::testMapValueUpdate()
.applyTo(*doc);
auto fval3(doc->getAs<WeightedSetFieldValue>(field1));
- CPPUNIT_ASSERT(fval3->find(StringFieldValue("apple")) != fval3->end());
- CPPUNIT_ASSERT_EQUAL(1, fval3->get(StringFieldValue("apple")));
+ EXPECT_NE(fval3->find(StringFieldValue("apple")), fval3->end());
+ EXPECT_EQ(1, fval3->get(StringFieldValue("apple")));
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
.addUpdate(FieldUpdate(field2).addUpdate(AddValueUpdate(StringFieldValue("apple")).setWeight(1)))
.applyTo(*doc);
auto fval3b(doc->getAs<WeightedSetFieldValue>(field2));
- CPPUNIT_ASSERT(fval3b->find(StringFieldValue("apple")) != fval3b->end());
- CPPUNIT_ASSERT_EQUAL(1, fval3b->get(StringFieldValue("apple")));
+ EXPECT_NE(fval3b->find(StringFieldValue("apple")), fval3b->end());
+ EXPECT_EQ(1, fval3b->get(StringFieldValue("apple")));
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
.addUpdate(FieldUpdate(field1)
@@ -873,8 +759,8 @@ DocumentUpdateTest::testMapValueUpdate()
.applyTo(*doc);
auto fv3 = doc->getAs<WeightedSetFieldValue>(field1);
- CPPUNIT_ASSERT(fv3->find(StringFieldValue("apple")) != fv3->end());
- CPPUNIT_ASSERT_EQUAL(0, fv3->get(StringFieldValue("apple")));
+ EXPECT_NE(fv3->find(StringFieldValue("apple")), fv3->end());
+ EXPECT_EQ(0, fv3->get(StringFieldValue("apple")));
DocumentUpdate(docMan.getTypeRepo(), *doc->getDataType(), doc->getId())
.addUpdate(FieldUpdate(field2)
@@ -883,7 +769,7 @@ DocumentUpdateTest::testMapValueUpdate()
.applyTo(*doc);
auto fv4 = doc->getAs<WeightedSetFieldValue>(field2);
- CPPUNIT_ASSERT(fv4->find(StringFieldValue("apple")) == fv4->end());
+ EXPECT_EQ(fv4->find(StringFieldValue("apple")), fv4->end());
}
std::unique_ptr<Tensor>
@@ -905,7 +791,7 @@ makeTensorFieldValue(const TensorSpec &spec, const TensorDataType &dataType)
const Tensor &asTensor(const FieldValue &fieldValue) {
auto &tensorFieldValue = dynamic_cast<const TensorFieldValue &>(fieldValue);
auto &tensor = tensorFieldValue.getAsTensorPtr();
- CPPUNIT_ASSERT(tensor);
+ assert(tensor);
return *tensor;
}
@@ -930,7 +816,7 @@ struct TensorUpdateFixture {
tensorDataType(extractTensorDataType()),
tensorType(tensorDataType.getTensorType().to_spec())
{
- CPPUNIT_ASSERT(!emptyDoc->getValue(fieldName));
+ EXPECT_FALSE(emptyDoc->getValue(fieldName));
}
~TensorUpdateFixture() {}
@@ -967,20 +853,20 @@ struct TensorUpdateFixture {
}
void assertDocumentUpdated() {
- CPPUNIT_ASSERT(*emptyDoc != updatedDoc);
+ EXPECT_NE(*emptyDoc, updatedDoc);
}
void assertDocumentNotUpdated() {
- CPPUNIT_ASSERT(*emptyDoc == updatedDoc);
+ EXPECT_EQ(*emptyDoc, updatedDoc);
}
void assertTensor(const TensorFieldValue &expTensorValue) {
auto actTensorValue = getTensor();
- CPPUNIT_ASSERT(actTensorValue);
- CPPUNIT_ASSERT(*actTensorValue == expTensorValue);
+ ASSERT_TRUE(actTensorValue);
+ EXPECT_EQ(*actTensorValue, expTensorValue);
auto &actTensor = asTensor(*actTensorValue);
auto &expTensor = asTensor(expTensorValue);
- CPPUNIT_ASSERT(actTensor == expTensor);
+ EXPECT_EQ(actTensor, expTensor);
}
void assertTensor(const TensorSpec &expSpec) {
@@ -1004,8 +890,7 @@ struct TensorUpdateFixture {
};
-void
-DocumentUpdateTest::tensor_assign_update_can_be_applied()
+TEST(DocumentUpdateTest, tensor_assign_update_can_be_applied)
{
TensorUpdateFixture f;
auto newTensor = f.makeBaselineTensor();
@@ -1014,18 +899,16 @@ DocumentUpdateTest::tensor_assign_update_can_be_applied()
f.assertTensor(*newTensor);
}
-void
-DocumentUpdateTest::tensor_clear_update_can_be_applied()
+TEST(DocumentUpdateTest, tensor_clear_update_can_be_applied)
{
TensorUpdateFixture f;
f.setTensor(*f.makeBaselineTensor());
f.applyUpdate(ClearValueUpdate());
f.assertDocumentNotUpdated();
- CPPUNIT_ASSERT(!f.getTensor());
+ EXPECT_FALSE(f.getTensor());
}
-void
-DocumentUpdateTest::tensor_add_update_can_be_applied()
+TEST(DocumentUpdateTest, tensor_add_update_can_be_applied)
{
TensorUpdateFixture f;
f.assertApplyUpdate(f.spec().add({{"x", "a"}}, 2)
@@ -1039,8 +922,7 @@ DocumentUpdateTest::tensor_add_update_can_be_applied()
.add({{"x", "c"}}, 7));
}
-void
-DocumentUpdateTest::tensor_modify_update_can_be_applied()
+TEST(DocumentUpdateTest, tensor_modify_update_can_be_applied)
{
TensorUpdateFixture f;
auto baseLine = f.spec().add({{"x", "a"}}, 2)
@@ -1066,29 +948,25 @@ DocumentUpdateTest::tensor_modify_update_can_be_applied()
.add({{"x", "b"}}, 15));
}
-void
-DocumentUpdateTest::tensor_assign_update_can_be_roundtrip_serialized()
+TEST(DocumentUpdateTest, tensor_assign_update_can_be_roundtrip_serialized)
{
TensorUpdateFixture f;
f.assertRoundtripSerialize(AssignValueUpdate(*f.makeBaselineTensor()));
}
-void
-DocumentUpdateTest::tensor_add_update_can_be_roundtrip_serialized()
+TEST(DocumentUpdateTest, tensor_add_update_can_be_roundtrip_serialized)
{
TensorUpdateFixture f;
f.assertRoundtripSerialize(TensorAddUpdate(f.makeBaselineTensor()));
}
-void
-DocumentUpdateTest::tensor_remove_update_can_be_roundtrip_serialized()
+TEST(DocumentUpdateTest, tensor_remove_update_can_be_roundtrip_serialized)
{
TensorUpdateFixture f;
f.assertRoundtripSerialize(TensorRemoveUpdate(f.makeBaselineTensor()));
}
-void
-DocumentUpdateTest::tensor_modify_update_can_be_roundtrip_serialized()
+TEST(DocumentUpdateTest, tensor_modify_update_can_be_roundtrip_serialized)
{
TensorUpdateFixture f;
f.assertRoundtripSerialize(TensorModifyUpdate(TensorModifyUpdate::Operation::REPLACE, f.makeBaselineTensor()));
@@ -1102,18 +980,17 @@ assertDocumentUpdateFlag(bool createIfNonExistent, int value)
{
DocumentUpdateFlags f1;
f1.setCreateIfNonExistent(createIfNonExistent);
- CPPUNIT_ASSERT_EQUAL(createIfNonExistent, f1.getCreateIfNonExistent());
+ EXPECT_EQ(createIfNonExistent, f1.getCreateIfNonExistent());
int combined = f1.injectInto(value);
std::cout << "createIfNonExistent=" << createIfNonExistent << ", value=" << value << ", combined=" << combined << std::endl;
DocumentUpdateFlags f2 = DocumentUpdateFlags::extractFlags(combined);
int extractedValue = DocumentUpdateFlags::extractValue(combined);
- CPPUNIT_ASSERT_EQUAL(createIfNonExistent, f2.getCreateIfNonExistent());
- CPPUNIT_ASSERT_EQUAL(value, extractedValue);
+ EXPECT_EQ(createIfNonExistent, f2.getCreateIfNonExistent());
+ EXPECT_EQ(value, extractedValue);
}
-void
-DocumentUpdateTest::testThatDocumentUpdateFlagsIsWorking()
+TEST(DocumentUpdateTest, testThatDocumentUpdateFlagsIsWorking)
{
{ // create-if-non-existent = true
assertDocumentUpdateFlag(true, 0);
@@ -1153,8 +1030,7 @@ CreateIfNonExistentFixture::CreateIfNonExistentFixture()
update->setCreateIfNonExistent(true);
}
-void
-DocumentUpdateTest::testThatCreateIfNonExistentFlagIsSerialized50AndDeserialized50()
+TEST(DocumentUpdateTest, testThatCreateIfNonExistentFlagIsSerialized50AndDeserialized50)
{
CreateIfNonExistentFixture f;
@@ -1162,12 +1038,11 @@ DocumentUpdateTest::testThatCreateIfNonExistentFlagIsSerialized50AndDeserialized
buf->flip();
DocumentUpdate::UP deserialized = DocumentUpdate::createHEAD(f.docMan.getTypeRepo(), *buf);
- CPPUNIT_ASSERT_EQUAL(*f.update, *deserialized);
- CPPUNIT_ASSERT(deserialized->getCreateIfNonExistent());
+ EXPECT_EQ(*f.update, *deserialized);
+ EXPECT_TRUE(deserialized->getCreateIfNonExistent());
}
-void
-DocumentUpdateTest::testThatCreateIfNonExistentFlagIsSerializedAndDeserialized()
+TEST(DocumentUpdateTest, testThatCreateIfNonExistentFlagIsSerializedAndDeserialized)
{
CreateIfNonExistentFixture f;
@@ -1176,8 +1051,8 @@ DocumentUpdateTest::testThatCreateIfNonExistentFlagIsSerializedAndDeserialized()
nbostream is(buf->getBufferAtPos(), buf->getRemaining());
auto deserialized = DocumentUpdate::create42(f.docMan.getTypeRepo(), is);
- CPPUNIT_ASSERT_EQUAL(*f.update, *deserialized);
- CPPUNIT_ASSERT(deserialized->getCreateIfNonExistent());
+ EXPECT_EQ(*f.update, *deserialized);
+ EXPECT_TRUE(deserialized->getCreateIfNonExistent());
}
struct ArrayUpdateFixture {
@@ -1202,17 +1077,19 @@ ArrayUpdateFixture::ArrayUpdateFixture()
}
ArrayUpdateFixture::~ArrayUpdateFixture() = default;
-void DocumentUpdateTest::array_element_update_can_be_roundtrip_serialized() {
+TEST(DocumentUpdateTest, array_element_update_can_be_roundtrip_serialized)
+{
ArrayUpdateFixture f;
auto buffer = serializeHEAD(*f.update);
buffer->flip();
auto deserialized = DocumentUpdate::createHEAD(f.doc_man.getTypeRepo(), *buffer);
- CPPUNIT_ASSERT_EQUAL(*f.update, *deserialized);
+ EXPECT_EQ(*f.update, *deserialized);
}
-void DocumentUpdateTest::array_element_update_applies_to_specified_element() {
+TEST(DocumentUpdateTest, array_element_update_applies_to_specified_element)
+{
ArrayUpdateFixture f;
ArrayFieldValue array_value(f.array_field.getDataType());
@@ -1224,13 +1101,14 @@ void DocumentUpdateTest::array_element_update_applies_to_specified_element() {
f.update->applyTo(*f.doc);
auto result_array = f.doc->getAs<ArrayFieldValue>(f.array_field);
- CPPUNIT_ASSERT_EQUAL(size_t(3), result_array->size());
- CPPUNIT_ASSERT_EQUAL(vespalib::string("foo"), (*result_array)[0].getAsString());
- CPPUNIT_ASSERT_EQUAL(vespalib::string("bar"), (*result_array)[1].getAsString());
- CPPUNIT_ASSERT_EQUAL(vespalib::string("blarg"), (*result_array)[2].getAsString());
+ ASSERT_EQ(size_t(3), result_array->size());
+ EXPECT_EQ(vespalib::string("foo"), (*result_array)[0].getAsString());
+ EXPECT_EQ(vespalib::string("bar"), (*result_array)[1].getAsString());
+ EXPECT_EQ(vespalib::string("blarg"), (*result_array)[2].getAsString());
}
-void DocumentUpdateTest::array_element_update_for_invalid_index_is_ignored() {
+TEST(DocumentUpdateTest, array_element_update_for_invalid_index_is_ignored)
+{
ArrayUpdateFixture f;
ArrayFieldValue array_value(f.array_field.getDataType());
@@ -1240,7 +1118,7 @@ void DocumentUpdateTest::array_element_update_for_invalid_index_is_ignored() {
f.update->applyTo(*f.doc); // MapValueUpdate for index 1, which does not exist
auto result_array = f.doc->getAs<ArrayFieldValue>(f.array_field);
- CPPUNIT_ASSERT_EQUAL(array_value, *result_array);
+ EXPECT_EQ(array_value, *result_array);
}
} // namespace document
diff --git a/documentapi/src/tests/create-test.sh b/documentapi/src/tests/create-test.sh
deleted file mode 100755
index 9809d54d38b..00000000000
--- a/documentapi/src/tests/create-test.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-gen_ignore_file() {
- echo "generating '$1' ..."
- echo ".depend" > $1
- echo "Makefile" >> $1
- echo "${test}_test" >> $1
-}
-
-gen_project_file() {
- echo "generating '$1' ..."
- echo "APPLICATION ${test}_test" > $1
- echo "OBJS $test" >> $1
- echo "LIBS documentapi/documentapi" >> $1
- echo "EXTERNALLIBS vespalib vespalog document config messagebus-test" >> $1
- echo "EXTERNALLIBS messagebus config slobrokserver vespalib" >> $1
- echo "" >> $1
- echo "CUSTOMMAKE" >> $1
- echo "test: depend ${test}_test" >> $1
- echo -e "\t@./${test}_test" >> $1
-}
-
-gen_source() {
- echo "generating '$1' ..."
- echo "#include <vespa/vespalib/testkit/testapp.h>" > $1
- echo "" >> $1
- echo "#include <vespa/log/log.h>" >> $1
- echo "LOG_SETUP(\"${test}_test\");" >> $1
- echo "" >> $1
- echo "//using namespace documentapi;" >> $1
- echo "" >> $1
- echo "TEST_SETUP(Test);" >> $1
- echo "" >> $1
- echo "int" >> $1
- echo "Test::Main()" >> $1
- echo "{" >> $1
- echo " TEST_INIT(\"${test}_test\");" >> $1
- echo " TEST_DONE();" >> $1
- echo "}" >> $1
-}
-
-gen_desc() {
- echo "generating '$1' ..."
- echo "$test test. Take a look at $test.cpp for details." > $1
-}
-
-gen_file_list() {
- echo "generating '$1' ..."
- echo "$test.cpp" > $1
-}
-
-if [ $# -ne 1 ]; then
- echo "usage: $0 <name>"
- echo " name: name of the test to create"
- exit 1
-fi
-
-test=$1
-if [ -e $test ]; then
- echo "$test already present, don't want to mess it up..."
- exit 1
-fi
-
-echo "creating directory '$test' ..."
-mkdir -p $test || exit 1
-cd $test || exit 1
-test=`basename $test`
-
-gen_ignore_file .cvsignore
-gen_project_file fastos.project
-gen_source $test.cpp
-gen_desc DESC
-gen_file_list FILES
diff --git a/documentapi/src/tests/policyfactory/DESC b/documentapi/src/tests/policyfactory/DESC
deleted file mode 100644
index faf40102408..00000000000
--- a/documentapi/src/tests/policyfactory/DESC
+++ /dev/null
@@ -1 +0,0 @@
-policyfactory test. Take a look at policyfactory.cpp for details.
diff --git a/documentapi/src/tests/policyfactory/FILES b/documentapi/src/tests/policyfactory/FILES
deleted file mode 100644
index 744e02bc7d6..00000000000
--- a/documentapi/src/tests/policyfactory/FILES
+++ /dev/null
@@ -1 +0,0 @@
-policyfactory.cpp
diff --git a/documentapi/src/tests/priority/DESC b/documentapi/src/tests/priority/DESC
deleted file mode 100644
index d213e9de057..00000000000
--- a/documentapi/src/tests/priority/DESC
+++ /dev/null
@@ -1 +0,0 @@
-priority test. Take a look at priority.cpp for details.
diff --git a/documentapi/src/tests/priority/FILES b/documentapi/src/tests/priority/FILES
deleted file mode 100644
index 4a9bd82566a..00000000000
--- a/documentapi/src/tests/priority/FILES
+++ /dev/null
@@ -1 +0,0 @@
-priority.cpp
diff --git a/documentapi/src/tests/replymerger/DESC b/documentapi/src/tests/replymerger/DESC
deleted file mode 100644
index ca179fc0da0..00000000000
--- a/documentapi/src/tests/replymerger/DESC
+++ /dev/null
@@ -1 +0,0 @@
-replymerger test. Take a look at replymerger.cpp for details.
diff --git a/documentapi/src/tests/replymerger/FILES b/documentapi/src/tests/replymerger/FILES
deleted file mode 100644
index 5056276d197..00000000000
--- a/documentapi/src/tests/replymerger/FILES
+++ /dev/null
@@ -1 +0,0 @@
-replymerger.cpp
diff --git a/documentapi/src/tests/routablefactory/DESC b/documentapi/src/tests/routablefactory/DESC
deleted file mode 100644
index 11c0cb8c0d3..00000000000
--- a/documentapi/src/tests/routablefactory/DESC
+++ /dev/null
@@ -1 +0,0 @@
-routablefactory test. Take a look at routablefactory.cpp for details.
diff --git a/documentapi/src/tests/routablefactory/FILES b/documentapi/src/tests/routablefactory/FILES
deleted file mode 100644
index 6176a49814e..00000000000
--- a/documentapi/src/tests/routablefactory/FILES
+++ /dev/null
@@ -1 +0,0 @@
-routablefactory.cpp
diff --git a/eval/CMakeLists.txt b/eval/CMakeLists.txt
index 9f59f6a71a6..d15f1c37d2d 100644
--- a/eval/CMakeLists.txt
+++ b/eval/CMakeLists.txt
@@ -42,6 +42,7 @@ vespa_define_module(
src/tests/tensor/tensor_mapper
src/tests/tensor/tensor_modify_operation
src/tests/tensor/tensor_performance
+ src/tests/tensor/tensor_remove_operation
src/tests/tensor/tensor_serialization
src/tests/tensor/tensor_slime_serialization
src/tests/tensor/typed_cells
diff --git a/eval/src/tests/eval/compiled_function/FILES b/eval/src/tests/eval/compiled_function/FILES
deleted file mode 100644
index 44a9116c4fe..00000000000
--- a/eval/src/tests/eval/compiled_function/FILES
+++ /dev/null
@@ -1 +0,0 @@
-compiled_function_test.cpp
diff --git a/eval/src/tests/eval/function/FILES b/eval/src/tests/eval/function/FILES
deleted file mode 100644
index a7421dd2605..00000000000
--- a/eval/src/tests/eval/function/FILES
+++ /dev/null
@@ -1 +0,0 @@
-function_parser_test.cpp
diff --git a/eval/src/tests/eval/interpreted_function/FILES b/eval/src/tests/eval/interpreted_function/FILES
deleted file mode 100644
index e046bd3ff35..00000000000
--- a/eval/src/tests/eval/interpreted_function/FILES
+++ /dev/null
@@ -1 +0,0 @@
-interpreted_function_test.cpp
diff --git a/eval/src/tests/tensor/dense_dot_product_function/FILES b/eval/src/tests/tensor/dense_dot_product_function/FILES
deleted file mode 100644
index c79d4ae29de..00000000000
--- a/eval/src/tests/tensor/dense_dot_product_function/FILES
+++ /dev/null
@@ -1 +0,0 @@
-dense_dot_product_function_test.cpp
diff --git a/eval/src/tests/tensor/dense_tensor_address_combiner/FILES b/eval/src/tests/tensor/dense_tensor_address_combiner/FILES
deleted file mode 100644
index 0a49bd4647b..00000000000
--- a/eval/src/tests/tensor/dense_tensor_address_combiner/FILES
+++ /dev/null
@@ -1 +0,0 @@
-dense_tensor_address_combiner_test.cpp
diff --git a/eval/src/tests/tensor/dense_tensor_builder/FILES b/eval/src/tests/tensor/dense_tensor_builder/FILES
deleted file mode 100644
index 448dd3c1e3c..00000000000
--- a/eval/src/tests/tensor/dense_tensor_builder/FILES
+++ /dev/null
@@ -1 +0,0 @@
-dense_tensor_builder_test.cpp
diff --git a/eval/src/tests/tensor/sparse_tensor_builder/FILES b/eval/src/tests/tensor/sparse_tensor_builder/FILES
deleted file mode 100644
index ad47666278e..00000000000
--- a/eval/src/tests/tensor/sparse_tensor_builder/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sparse_tensor_builder_test.cpp
diff --git a/eval/src/tests/tensor/tensor_address/FILES b/eval/src/tests/tensor/tensor_address/FILES
deleted file mode 100644
index 1d7d1c533a0..00000000000
--- a/eval/src/tests/tensor/tensor_address/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tensor_address_test.cpp
diff --git a/eval/src/tests/tensor/tensor_mapper/FILES b/eval/src/tests/tensor/tensor_mapper/FILES
deleted file mode 100644
index 8678f175be1..00000000000
--- a/eval/src/tests/tensor/tensor_mapper/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tensor_mapper_test.cpp
diff --git a/eval/src/tests/tensor/tensor_performance/FILES b/eval/src/tests/tensor/tensor_performance/FILES
deleted file mode 100644
index 4cec89055e5..00000000000
--- a/eval/src/tests/tensor/tensor_performance/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tensor_performance_test.cpp
diff --git a/eval/src/tests/tensor/tensor_remove_operation/CMakeLists.txt b/eval/src/tests/tensor/tensor_remove_operation/CMakeLists.txt
new file mode 100644
index 00000000000..8dfb8181f2b
--- /dev/null
+++ b/eval/src/tests/tensor/tensor_remove_operation/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+vespa_add_executable(eval_tensor_remove_operation_test_app TEST
+ SOURCES
+ tensor_remove_operation_test.cpp
+ DEPENDS
+ vespaeval
+)
+vespa_add_test(NAME eval_tensor_remove_operation_test_app COMMAND eval_tensor_remove_operation_test_app)
diff --git a/eval/src/tests/tensor/tensor_remove_operation/tensor_remove_operation_test.cpp b/eval/src/tests/tensor/tensor_remove_operation/tensor_remove_operation_test.cpp
new file mode 100644
index 00000000000..8b0c44a6e06
--- /dev/null
+++ b/eval/src/tests/tensor/tensor_remove_operation/tensor_remove_operation_test.cpp
@@ -0,0 +1,46 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include <vespa/eval/eval/tensor_spec.h>
+#include <vespa/eval/tensor/cell_values.h>
+#include <vespa/eval/tensor/default_tensor_engine.h>
+#include <vespa/eval/tensor/sparse/sparse_tensor.h>
+#include <vespa/eval/tensor/test/test_utils.h>
+#include <vespa/vespalib/testkit/test_kit.h>
+
+using vespalib::eval::Value;
+using vespalib::eval::TensorSpec;
+using vespalib::tensor::test::makeTensor;
+using namespace vespalib::tensor;
+
+void
+assertRemove(const TensorSpec &source, const TensorSpec &arg, const TensorSpec &expected)
+{
+ auto sourceTensor = makeTensor<Tensor>(source);
+ auto argTensor = makeTensor<SparseTensor>(arg);
+ auto resultTensor = sourceTensor->remove(CellValues(*argTensor));
+ auto actual = resultTensor->toSpec();
+ EXPECT_EQUAL(actual, expected);
+}
+
+TEST("require that cells can be removed from a sparse tensor")
+{
+ assertRemove(TensorSpec("tensor(x{},y{})")
+ .add({{"x","a"},{"y","b"}}, 2)
+ .add({{"x","c"},{"y","d"}}, 3),
+ TensorSpec("tensor(x{},y{})")
+ .add({{"x","c"},{"y","d"}}, 1)
+ .add({{"x","e"},{"y","f"}}, 1),
+ TensorSpec("tensor(x{},y{})")
+ .add({{"x","a"},{"y","b"}}, 2));
+}
+
+TEST("require that all cells can be removed from a sparse tensor")
+{
+ assertRemove(TensorSpec("tensor(x{},y{})")
+ .add({{"x","a"},{"y","b"}}, 2),
+ TensorSpec("tensor(x{},y{})")
+ .add({{"x","a"},{"y","b"}}, 1),
+ TensorSpec("tensor(x{},y{})"));
+}
+
+TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/eval/src/tests/tensor/tensor_serialization/FILES b/eval/src/tests/tensor/tensor_serialization/FILES
deleted file mode 100644
index 882dd368f5c..00000000000
--- a/eval/src/tests/tensor/tensor_serialization/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tensor_serialization_test.cpp
diff --git a/eval/src/tests/tensor/tensor_slime_serialization/FILES b/eval/src/tests/tensor/tensor_slime_serialization/FILES
deleted file mode 100644
index 874f951beb5..00000000000
--- a/eval/src/tests/tensor/tensor_slime_serialization/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tensor_slime_serialization_test.cpp
diff --git a/eval/src/vespa/eval/tensor/dense/dense_tensor_view.cpp b/eval/src/vespa/eval/tensor/dense/dense_tensor_view.cpp
index 6243f79a971..164ec042384 100644
--- a/eval/src/vespa/eval/tensor/dense/dense_tensor_view.cpp
+++ b/eval/src/vespa/eval/tensor/dense/dense_tensor_view.cpp
@@ -299,4 +299,10 @@ DenseTensorView::add(const Tensor &) const
LOG_ABORT("should not be reached");
}
+std::unique_ptr<Tensor>
+DenseTensorView::remove(const CellValues &) const
+{
+ LOG_ABORT("should not be reached");
+}
+
}
diff --git a/eval/src/vespa/eval/tensor/dense/dense_tensor_view.h b/eval/src/vespa/eval/tensor/dense/dense_tensor_view.h
index f470e9d374f..11ed9639cc6 100644
--- a/eval/src/vespa/eval/tensor/dense/dense_tensor_view.h
+++ b/eval/src/vespa/eval/tensor/dense/dense_tensor_view.h
@@ -55,6 +55,7 @@ public:
Tensor::UP reduce(join_fun_t op, const std::vector<vespalib::string> &dimensions) const override;
std::unique_ptr<Tensor> modify(join_fun_t op, const CellValues &cellValues) const override;
std::unique_ptr<Tensor> add(const Tensor &arg) const override;
+ std::unique_ptr<Tensor> remove(const CellValues &) const override;
bool equals(const Tensor &arg) const override;
Tensor::UP clone() const override;
eval::TensorSpec toSpec() const override;
diff --git a/eval/src/vespa/eval/tensor/sparse/CMakeLists.txt b/eval/src/vespa/eval/tensor/sparse/CMakeLists.txt
index d50c6d5db10..2d142d98ba1 100644
--- a/eval/src/vespa/eval/tensor/sparse/CMakeLists.txt
+++ b/eval/src/vespa/eval/tensor/sparse/CMakeLists.txt
@@ -8,8 +8,9 @@ vespa_add_library(eval_tensor_sparse OBJECT
sparse_tensor_address_padder.cpp
sparse_tensor_address_reducer.cpp
sparse_tensor_address_ref.cpp
+ sparse_tensor_builder.cpp
sparse_tensor_match.cpp
sparse_tensor_modify.cpp
- sparse_tensor_builder.cpp
+ sparse_tensor_remove.cpp
sparse_tensor_unsorted_address_builder.cpp
)
diff --git a/eval/src/vespa/eval/tensor/sparse/sparse_tensor.cpp b/eval/src/vespa/eval/tensor/sparse/sparse_tensor.cpp
index e3ee9593d80..ded9310b450 100644
--- a/eval/src/vespa/eval/tensor/sparse/sparse_tensor.cpp
+++ b/eval/src/vespa/eval/tensor/sparse/sparse_tensor.cpp
@@ -7,6 +7,7 @@
#include "sparse_tensor_match.h"
#include "sparse_tensor_modify.h"
#include "sparse_tensor_reduce.hpp"
+#include "sparse_tensor_remove.h"
#include <vespa/eval/eval/operation.h>
#include <vespa/eval/tensor/cell_values.h>
#include <vespa/eval/tensor/tensor_address_builder.h>
@@ -215,6 +216,17 @@ SparseTensor::add(const Tensor &arg) const
return adder.build();
}
+std::unique_ptr<Tensor>
+SparseTensor::remove(const CellValues &cellAddresses) const
+{
+ Cells cells;
+ Stash stash;
+ copyCells(cells, _cells, stash);
+ SparseTensorRemove remover(_type, std::move(cells), std::move(stash));
+ cellAddresses.accept(remover);
+ return remover.build();
+}
+
}
VESPALIB_HASH_MAP_INSTANTIATE_H_E_M(vespalib::tensor::SparseTensorAddressRef, double, vespalib::hash<vespalib::tensor::SparseTensorAddressRef>,
diff --git a/eval/src/vespa/eval/tensor/sparse/sparse_tensor.h b/eval/src/vespa/eval/tensor/sparse/sparse_tensor.h
index 107cba7a673..7eebff1f010 100644
--- a/eval/src/vespa/eval/tensor/sparse/sparse_tensor.h
+++ b/eval/src/vespa/eval/tensor/sparse/sparse_tensor.h
@@ -47,6 +47,7 @@ public:
Tensor::UP reduce(join_fun_t op, const std::vector<vespalib::string> &dimensions) const override;
std::unique_ptr<Tensor> modify(join_fun_t op, const CellValues &cellValues) const override;
std::unique_ptr<Tensor> add(const Tensor &arg) const override;
+ std::unique_ptr<Tensor> remove(const CellValues &cellAddresses) const override;
bool equals(const Tensor &arg) const override;
Tensor::UP clone() const override;
eval::TensorSpec toSpec() const override;
diff --git a/eval/src/vespa/eval/tensor/sparse/sparse_tensor_remove.cpp b/eval/src/vespa/eval/tensor/sparse/sparse_tensor_remove.cpp
new file mode 100644
index 00000000000..76af1e3b5fb
--- /dev/null
+++ b/eval/src/vespa/eval/tensor/sparse/sparse_tensor_remove.cpp
@@ -0,0 +1,33 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "sparse_tensor_remove.h"
+#include <vespa/eval/tensor/tensor_address_element_iterator.h>
+
+namespace vespalib::tensor {
+
+SparseTensorRemove::SparseTensorRemove(const eval::ValueType &type, Cells &&cells, Stash &&stash)
+ : _type(type),
+ _cells(std::move(cells)),
+ _stash(std::move(stash)),
+ _addressBuilder()
+{
+}
+
+SparseTensorRemove::~SparseTensorRemove() = default;
+
+void
+SparseTensorRemove::visit(const TensorAddress &address, double value)
+{
+ (void) value;
+ _addressBuilder.populate(_type, address);
+ auto addressRef = _addressBuilder.getAddressRef();
+ _cells.erase(addressRef);
+}
+
+std::unique_ptr<Tensor>
+SparseTensorRemove::build()
+{
+ return std::make_unique<SparseTensor>(std::move(_type), std::move(_cells), std::move(_stash));
+}
+
+}
diff --git a/eval/src/vespa/eval/tensor/sparse/sparse_tensor_remove.h b/eval/src/vespa/eval/tensor/sparse/sparse_tensor_remove.h
new file mode 100644
index 00000000000..3d5905d8f41
--- /dev/null
+++ b/eval/src/vespa/eval/tensor/sparse/sparse_tensor_remove.h
@@ -0,0 +1,32 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#pragma once
+
+#include "sparse_tensor.h"
+#include "sparse_tensor_address_builder.h"
+#include <vespa/eval/tensor/tensor_visitor.h>
+
+namespace vespalib::tensor {
+
+/**
+ * This class handles a tensor remove operation on a sparse tensor.
+ *
+ * Creates a new tensor by removing the cells matching the cell addresses visited.
+ * The value associated with the address is ignored.
+ */
+class SparseTensorRemove : public TensorVisitor {
+private:
+ using Cells = SparseTensor::Cells;
+ eval::ValueType _type;
+ Cells _cells;
+ Stash _stash;
+ SparseTensorAddressBuilder _addressBuilder;
+
+public:
+ SparseTensorRemove(const eval::ValueType &type, Cells &&cells, Stash &&stash);
+ ~SparseTensorRemove();
+ void visit(const TensorAddress &address, double value) override;
+ std::unique_ptr<Tensor> build();
+};
+
+}
diff --git a/eval/src/vespa/eval/tensor/tensor.h b/eval/src/vespa/eval/tensor/tensor.h
index cdb9d90d3a3..4061ed9c115 100644
--- a/eval/src/vespa/eval/tensor/tensor.h
+++ b/eval/src/vespa/eval/tensor/tensor.h
@@ -49,6 +49,12 @@ public:
*/
virtual std::unique_ptr<Tensor> add(const Tensor &arg) const = 0;
+ /**
+ * Creates a new tensor by removing the cells matching the given cell addresses.
+ * The value associated with the address is ignored.
+ */
+ virtual std::unique_ptr<Tensor> remove(const CellValues &cellAddresses) const = 0;
+
virtual bool equals(const Tensor &arg) const = 0; // want to remove, but needed by document
virtual Tensor::UP clone() const = 0; // want to remove, but needed by document
virtual eval::TensorSpec toSpec() const = 0;
diff --git a/eval/src/vespa/eval/tensor/wrapped_simple_tensor.cpp b/eval/src/vespa/eval/tensor/wrapped_simple_tensor.cpp
index 66fd2978a53..9df59a63873 100644
--- a/eval/src/vespa/eval/tensor/wrapped_simple_tensor.cpp
+++ b/eval/src/vespa/eval/tensor/wrapped_simple_tensor.cpp
@@ -89,4 +89,10 @@ WrappedSimpleTensor::add(const Tensor &) const
LOG_ABORT("should not be reached");
}
+std::unique_ptr<Tensor>
+WrappedSimpleTensor::remove(const CellValues &) const
+{
+ LOG_ABORT("should not be reached");
+}
+
} // namespace vespalib::tensor
diff --git a/eval/src/vespa/eval/tensor/wrapped_simple_tensor.h b/eval/src/vespa/eval/tensor/wrapped_simple_tensor.h
index 2d877b6fbbc..e7ffe7a755f 100644
--- a/eval/src/vespa/eval/tensor/wrapped_simple_tensor.h
+++ b/eval/src/vespa/eval/tensor/wrapped_simple_tensor.h
@@ -40,6 +40,7 @@ public:
Tensor::UP reduce(join_fun_t, const std::vector<vespalib::string> &) const override;
std::unique_ptr<Tensor> modify(join_fun_t, const CellValues &) const override;
std::unique_ptr<Tensor> add(const Tensor &arg) const override;
+ std::unique_ptr<Tensor> remove(const CellValues &) const override;
};
} // namespace vespalib::tensor
diff --git a/fnet/src/tests/databuffer/DESC b/fnet/src/tests/databuffer/DESC
deleted file mode 100644
index d947b059899..00000000000
--- a/fnet/src/tests/databuffer/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Benchmark some databuffer operations and check for consistent
-encoding/decoding.
diff --git a/fnet/src/tests/databuffer/FILES b/fnet/src/tests/databuffer/FILES
deleted file mode 100644
index c0265d2742f..00000000000
--- a/fnet/src/tests/databuffer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-databuffer.cpp
diff --git a/fnet/src/tests/examples/FILES b/fnet/src/tests/examples/FILES
deleted file mode 100644
index 58573211940..00000000000
--- a/fnet/src/tests/examples/FILES
+++ /dev/null
@@ -1 +0,0 @@
-examples_test.cpp
diff --git a/fnet/src/tests/frt/method_pt/DESC b/fnet/src/tests/frt/method_pt/DESC
deleted file mode 100644
index 81e7d2c6d1c..00000000000
--- a/fnet/src/tests/frt/method_pt/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Ensure that the method pointer magic used by FRT works with the
-current compiler.
diff --git a/fnet/src/tests/frt/method_pt/FILES b/fnet/src/tests/frt/method_pt/FILES
deleted file mode 100644
index 9586cd113fb..00000000000
--- a/fnet/src/tests/frt/method_pt/FILES
+++ /dev/null
@@ -1 +0,0 @@
-method_pt.cpp
diff --git a/fnet/src/tests/frt/rpc/DESC b/fnet/src/tests/frt/rpc/DESC
deleted file mode 100644
index 017c68b41f8..00000000000
--- a/fnet/src/tests/frt/rpc/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Various tests related to rpc invocation.
diff --git a/fnet/src/tests/frt/rpc/FILES b/fnet/src/tests/frt/rpc/FILES
deleted file mode 100644
index e038169da5d..00000000000
--- a/fnet/src/tests/frt/rpc/FILES
+++ /dev/null
@@ -1,3 +0,0 @@
-invoke.cpp
-session.cpp
-sharedblob.cpp
diff --git a/fnet/src/tests/frt/values/FILES b/fnet/src/tests/frt/values/FILES
deleted file mode 100644
index 8450fbfdf7e..00000000000
--- a/fnet/src/tests/frt/values/FILES
+++ /dev/null
@@ -1 +0,0 @@
-values_test.cpp
diff --git a/fnet/src/tests/info/DESC b/fnet/src/tests/info/DESC
deleted file mode 100644
index 4e7cd423af6..00000000000
--- a/fnet/src/tests/info/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Dummy test used to print out some general info about FNET.
diff --git a/fnet/src/tests/info/FILES b/fnet/src/tests/info/FILES
deleted file mode 100644
index 62e5403ecb5..00000000000
--- a/fnet/src/tests/info/FILES
+++ /dev/null
@@ -1 +0,0 @@
-info.cpp
diff --git a/fnet/src/tests/locking/DESC b/fnet/src/tests/locking/DESC
deleted file mode 100644
index 86c035e5a09..00000000000
--- a/fnet/src/tests/locking/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Benchmark locking and some queue locking strategies.
diff --git a/fnet/src/tests/locking/FILES b/fnet/src/tests/locking/FILES
deleted file mode 100644
index dfa689e7256..00000000000
--- a/fnet/src/tests/locking/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-lockspeed.cpp
-drainpackets.cpp
diff --git a/fnet/src/tests/printstuff/FILES b/fnet/src/tests/printstuff/FILES
deleted file mode 100644
index 95a889d6494..00000000000
--- a/fnet/src/tests/printstuff/FILES
+++ /dev/null
@@ -1 +0,0 @@
-printstuff_test.cpp
diff --git a/fnet/src/tests/scheduling/DESC b/fnet/src/tests/scheduling/DESC
deleted file mode 100644
index 6e4ca2972b9..00000000000
--- a/fnet/src/tests/scheduling/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Scheduler test.
diff --git a/fnet/src/tests/scheduling/FILES b/fnet/src/tests/scheduling/FILES
deleted file mode 100644
index bd5dc7f2572..00000000000
--- a/fnet/src/tests/scheduling/FILES
+++ /dev/null
@@ -1 +0,0 @@
-schedule.cpp
diff --git a/fnet/src/tests/sync_execute/DESC b/fnet/src/tests/sync_execute/DESC
deleted file mode 100644
index 4f1b88599a8..00000000000
--- a/fnet/src/tests/sync_execute/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test the sync and execute methods on the transport object.
diff --git a/fnet/src/tests/sync_execute/FILES b/fnet/src/tests/sync_execute/FILES
deleted file mode 100644
index 2e03de91167..00000000000
--- a/fnet/src/tests/sync_execute/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sync_execute.cpp
diff --git a/fnet/src/tests/time/DESC b/fnet/src/tests/time/DESC
deleted file mode 100644
index 27214fa9bcc..00000000000
--- a/fnet/src/tests/time/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Check how fast we can determine what time it is.
diff --git a/fnet/src/tests/time/FILES b/fnet/src/tests/time/FILES
deleted file mode 100644
index bf3708f36fa..00000000000
--- a/fnet/src/tests/time/FILES
+++ /dev/null
@@ -1 +0,0 @@
-timespeed.cpp
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/application/package-info.java b/jdisc_core/src/main/java/com/yahoo/jdisc/application/package-info.java
index c856712e1af..e650dfc6328 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/application/package-info.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/application/package-info.java
@@ -80,7 +80,7 @@ void reconfigureApplication() {
* It is fairly tricky to get this right during integration testing, since dependencies might be part of the build
* tree instead of being installed on the host. To facilitate this, JDisc will prefix any non-schemed location (e.g.
* "my_dependency.jar") with the system property "jdisc.bundle.path". This property defaults to the current
- * directory when running inside an IDE, but is set to "$VESPA_HOME/lib/jars/" by the jdisc_start script.
+ * directory when running inside an IDE, but is set to "$VESPA_HOME/lib/jars/" by the jdisc startup scripts.
*
* One may also reference system properties in a bundle location using the syntax "${propertyName}". If the property
* is not found, it defaults to an empty string.
@@ -118,16 +118,6 @@ $ set jdisc.application="myapp.jar"
$ restart jdisc
</pre>
*
- * For testing and development, the jDISC binary also supports command line parameters to start and stop a local
- * application.
- *
-<pre>
-$ install jdisc-dev
-$ emacs src/main/java/edu/disc/MyApplication.java
-$ mvn install
-$ sudo jdisc_start target/myapp.jar
-</pre>
- *
* <p>It is the responsibility of the Application itself to create, configure
* and activate a Container instance. Although jDISC offers an API that allows for- and manages the change of an active
* Container instance, making the necessary calls to do so is also considered Application logic. When jDISC receives an
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/ssl/impl/DefaultSslContextFactoryProvider.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/ssl/impl/DefaultSslContextFactoryProvider.java
index c381ba738a3..f9cdefeb5e8 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/ssl/impl/DefaultSslContextFactoryProvider.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/ssl/impl/DefaultSslContextFactoryProvider.java
@@ -16,7 +16,6 @@ import java.nio.file.Paths;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;
-import java.util.Arrays;
import java.util.List;
/**
@@ -55,6 +54,7 @@ public class DefaultSslContextFactoryProvider implements SslContextFactoryProvid
factory.setTrustStore(createTruststore(sslConfig));
}
factory.setProtocol("TLS");
+ factory.setEndpointIdentificationAlgorithm(null); // disable hostname verification of client certs
return factory;
}
diff --git a/jrt_test/src/tests/connect-close/DESC b/jrt_test/src/tests/connect-close/DESC
deleted file mode 100644
index d39f23bc4f2..00000000000
--- a/jrt_test/src/tests/connect-close/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Try to uncover bad behavior related to closing connections.
diff --git a/jrt_test/src/tests/connect-close/FILES b/jrt_test/src/tests/connect-close/FILES
deleted file mode 100644
index f24627b5d6d..00000000000
--- a/jrt_test/src/tests/connect-close/FILES
+++ /dev/null
@@ -1 +0,0 @@
-Test.java
diff --git a/jrt_test/src/tests/echo/DESC b/jrt_test/src/tests/echo/DESC
deleted file mode 100644
index 20d168f6385..00000000000
--- a/jrt_test/src/tests/echo/DESC
+++ /dev/null
@@ -1,3 +0,0 @@
-Invoke a method that returns the parameters using all different value
-types. The server is written in Java while the client is written in
-C++.
diff --git a/jrt_test/src/tests/echo/FILES b/jrt_test/src/tests/echo/FILES
deleted file mode 100644
index cc0b575f983..00000000000
--- a/jrt_test/src/tests/echo/FILES
+++ /dev/null
@@ -1,5 +0,0 @@
-dotest.sh
-out.txt
-ref.txt
-echo-client.cpp
-out.javaserver.1
diff --git a/jrt_test/src/tests/garbage/DESC b/jrt_test/src/tests/garbage/DESC
deleted file mode 100644
index c63c00cfc58..00000000000
--- a/jrt_test/src/tests/garbage/DESC
+++ /dev/null
@@ -1,4 +0,0 @@
-See what happens when feeding an RPC server garbage input. This
-particular test is based on Java interpreting the packet size as
-negative and therefore can determine that this is garbage from the
-packet header alone.
diff --git a/jrt_test/src/tests/garbage/FILES b/jrt_test/src/tests/garbage/FILES
deleted file mode 100644
index 8767d7c6974..00000000000
--- a/jrt_test/src/tests/garbage/FILES
+++ /dev/null
@@ -1 +0,0 @@
-Garbage.java
diff --git a/jrt_test/src/tests/hello-world/DESC b/jrt_test/src/tests/hello-world/DESC
deleted file mode 100644
index de4b2bda136..00000000000
--- a/jrt_test/src/tests/hello-world/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test running a hello world java program. \ No newline at end of file
diff --git a/jrt_test/src/tests/hello-world/FILES b/jrt_test/src/tests/hello-world/FILES
deleted file mode 100644
index 8bdeb70b5ed..00000000000
--- a/jrt_test/src/tests/hello-world/FILES
+++ /dev/null
@@ -1,3 +0,0 @@
-fastos.project
-out.txt
-ref.txt
diff --git a/jrt_test/src/tests/mandatory-methods/DESC b/jrt_test/src/tests/mandatory-methods/DESC
deleted file mode 100644
index 2cb4f467a2e..00000000000
--- a/jrt_test/src/tests/mandatory-methods/DESC
+++ /dev/null
@@ -1,10 +0,0 @@
-Test the mandatory methods of a Java RPC server
-(ping/reflection). This is done by using a C++ client against a
-barebone Java server. The ping method is used to poll the server while
-waiting for it to come up. The reflection methods are used to extract
-reflection information about the mandatory methods, which is checked
-against a checked-in expected result.
-
-This test will break easily if the documentation of the mandatory
-methods is changed or if the method iteration order is changed. This
-will not happen often, and the test is easily updated.
diff --git a/jrt_test/src/tests/mandatory-methods/FILES b/jrt_test/src/tests/mandatory-methods/FILES
deleted file mode 100644
index 4bfb761c16d..00000000000
--- a/jrt_test/src/tests/mandatory-methods/FILES
+++ /dev/null
@@ -1,6 +0,0 @@
-dotest.sh
-out.txt
-ref.txt
-RPCServer.java
-extract-reflection.cpp
-out.javaserver.1
diff --git a/jrt_test/src/tests/mockup-invoke/DESC b/jrt_test/src/tests/mockup-invoke/DESC
deleted file mode 100644
index 27ad5eca58f..00000000000
--- a/jrt_test/src/tests/mockup-invoke/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test that the mockup invoke implementation in Java is able to invoke
-methods in a C++ based RPC server.
diff --git a/jrt_test/src/tests/mockup-invoke/FILES b/jrt_test/src/tests/mockup-invoke/FILES
deleted file mode 100644
index da260550280..00000000000
--- a/jrt_test/src/tests/mockup-invoke/FILES
+++ /dev/null
@@ -1,6 +0,0 @@
-dotest.sh
-out.txt
-ref.txt
-mockup-server.cpp
-MockupInvoke.java
-out.server.1
diff --git a/jrt_test/src/tests/rpc-error/DESC b/jrt_test/src/tests/rpc-error/DESC
deleted file mode 100644
index a9de538edd7..00000000000
--- a/jrt_test/src/tests/rpc-error/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test that RPC errors are handled correctly when mixing cpp and java.
diff --git a/jrt_test/src/tests/rpc-error/FILES b/jrt_test/src/tests/rpc-error/FILES
deleted file mode 100644
index 53c47eb425d..00000000000
--- a/jrt_test/src/tests/rpc-error/FILES
+++ /dev/null
@@ -1,5 +0,0 @@
-dotest.sh
-TestErrors.java
-test-errors.cpp
-out.cppserver.1
-out.javaserver.1
diff --git a/jrt_test/src/tests/slobrok-api/DESC b/jrt_test/src/tests/slobrok-api/DESC
deleted file mode 100644
index b44753d7d10..00000000000
--- a/jrt_test/src/tests/slobrok-api/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test java port of slobrok api classes. Currently only tests with a
-single slobrok server.
diff --git a/jrt_test/src/tests/slobrok-api/FILES b/jrt_test/src/tests/slobrok-api/FILES
deleted file mode 100644
index cc18fdd7eb7..00000000000
--- a/jrt_test/src/tests/slobrok-api/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-SlobrokAPITest.java
-out.slobrok.1
diff --git a/logd/src/tests/info/DESC b/logd/src/tests/info/DESC
deleted file mode 100644
index cb24f291863..00000000000
--- a/logd/src/tests/info/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Print some info about this module.
diff --git a/logd/src/tests/info/FILES b/logd/src/tests/info/FILES
deleted file mode 100644
index 62e5403ecb5..00000000000
--- a/logd/src/tests/info/FILES
+++ /dev/null
@@ -1 +0,0 @@
-info.cpp
diff --git a/logd/src/tests/rotate/DESC b/logd/src/tests/rotate/DESC
deleted file mode 100644
index 202911eb96e..00000000000
--- a/logd/src/tests/rotate/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test that logd will drop data in favor of rotation if log server is
-too slow.
diff --git a/logd/src/tests/rotate/FILES b/logd/src/tests/rotate/FILES
deleted file mode 100644
index 8a7b941417d..00000000000
--- a/logd/src/tests/rotate/FILES
+++ /dev/null
@@ -1,4 +0,0 @@
-rotate_test.sh
-dummyserver.cpp
-dummylogger.cpp
-defaults-logd.cfg
diff --git a/lowercasing_test/src/tests/lowercasing/DESC b/lowercasing_test/src/tests/lowercasing/DESC
deleted file mode 100644
index 703e154b7fa..00000000000
--- a/lowercasing_test/src/tests/lowercasing/DESC
+++ /dev/null
@@ -1,7 +0,0 @@
-Check lowercasing is the same in Java and C++.
-
-Currently based on data from
-http://www.unicode.org/Public/4.0-Update/UnicodeData-4.0.0.txt
-
-The reason for using an older standard is the Character class in Java 6 uses the
-same data.
diff --git a/lowercasing_test/src/tests/lowercasing/FILES b/lowercasing_test/src/tests/lowercasing/FILES
deleted file mode 100644
index e93d88e772e..00000000000
--- a/lowercasing_test/src/tests/lowercasing/FILES
+++ /dev/null
@@ -1,6 +0,0 @@
-CasingVariants.java
-fetchletters.py
-letters
-out.txt
-ref.txt
-dotest.sh
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/routing/Resender.java b/messagebus/src/main/java/com/yahoo/messagebus/routing/Resender.java
index 2813498babc..49419052f8f 100755
--- a/messagebus/src/main/java/com/yahoo/messagebus/routing/Resender.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/routing/Resender.java
@@ -2,7 +2,10 @@
package com.yahoo.messagebus.routing;
import com.yahoo.concurrent.SystemTimer;
-import com.yahoo.messagebus.*;
+import com.yahoo.messagebus.ErrorCode;
+import com.yahoo.messagebus.Message;
+import com.yahoo.messagebus.Reply;
+import com.yahoo.messagebus.TraceLevel;
import java.util.PriorityQueue;
import java.util.LinkedList;
@@ -17,7 +20,7 @@ import java.util.List;
*/
public class Resender {
- private final PriorityQueue<Entry> queue = new PriorityQueue<Entry>();
+ private final PriorityQueue<Entry> queue = new PriorityQueue<>();
private final RetryPolicy retryPolicy;
/**
@@ -46,7 +49,7 @@ public class Resender {
* @param reply The reply to check.
* @return True if retry is required.
*/
- public boolean shouldRetry(Reply reply) {
+ boolean shouldRetry(Reply reply) {
int numErrors = reply.getNumErrors();
if (numErrors == 0) {
return false;
@@ -66,7 +69,7 @@ public class Resender {
* @param node The node to resend.
* @return True if the node was queued.
*/
- public boolean scheduleRetry(RoutingNode node) {
+ boolean scheduleRetry(RoutingNode node) {
Message msg = node.getMessage();
if (!msg.getRetryEnabled()) {
return false;
@@ -84,7 +87,9 @@ public class Resender {
node.getTrace().trace(TraceLevel.COMPONENT,
"Message scheduled for retry " + retry + " in " + delay + " seconds.");
msg.setRetry(retry);
- queue.add(new Entry(node, SystemTimer.INSTANCE.milliTime() + (long)(delay * 1000)));
+ synchronized (queue) {
+ queue.add(new Entry(node, SystemTimer.INSTANCE.milliTime() + (long) (delay * 1000)));
+ }
return true;
}
@@ -92,12 +97,14 @@ public class Resender {
* Invokes {@link RoutingNode#send()} on all routing nodes that are applicable for sending at the current time.
*/
public void resendScheduled() {
- if (queue.isEmpty()) return;
-
- List<RoutingNode> sendList = new LinkedList<RoutingNode>();
- long now = SystemTimer.INSTANCE.milliTime();
- while (!queue.isEmpty() && queue.peek().time <= now) {
- sendList.add(queue.poll().node);
+ List<RoutingNode> sendList;
+ synchronized (queue) {
+ if (queue.isEmpty()) return;
+ sendList = new LinkedList<>();
+ long now = SystemTimer.INSTANCE.milliTime();
+ while (!queue.isEmpty() && queue.peek().time <= now) {
+ sendList.add(queue.poll().node);
+ }
}
for (RoutingNode node : sendList) {
@@ -110,8 +117,10 @@ public class Resender {
* Discards all the routing nodes currently scheduled for resending.
*/
public void destroy() {
- while (!queue.isEmpty()) {
- queue.poll().node.discard();
+ synchronized (queue) {
+ while (!queue.isEmpty()) {
+ queue.poll().node.discard();
+ }
}
}
@@ -130,7 +139,7 @@ public class Resender {
* @param node The routing node being scheduled.
* @param time The time of this schedule.
*/
- public Entry(RoutingNode node, long time) {
+ Entry(RoutingNode node, long time) {
this.node = node;
this.time = time;
}
diff --git a/messagebus/src/tests/advancedrouting/DESC b/messagebus/src/tests/advancedrouting/DESC
deleted file mode 100644
index 735d63dcdc3..00000000000
--- a/messagebus/src/tests/advancedrouting/DESC
+++ /dev/null
@@ -1 +0,0 @@
-advancedrouting test. Take a look at advancedrouting.cpp for details.
diff --git a/messagebus/src/tests/advancedrouting/FILES b/messagebus/src/tests/advancedrouting/FILES
deleted file mode 100644
index 61eb026ac3a..00000000000
--- a/messagebus/src/tests/advancedrouting/FILES
+++ /dev/null
@@ -1 +0,0 @@
-advancedrouting.cpp
diff --git a/messagebus/src/tests/auto-reply/DESC b/messagebus/src/tests/auto-reply/DESC
deleted file mode 100644
index 2aec186bfac..00000000000
--- a/messagebus/src/tests/auto-reply/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test that a deleted Message or Reply with a non-empty call-stack will
-generate an automatic Reply.
diff --git a/messagebus/src/tests/auto-reply/FILES b/messagebus/src/tests/auto-reply/FILES
deleted file mode 100644
index 29f5dbbc1bb..00000000000
--- a/messagebus/src/tests/auto-reply/FILES
+++ /dev/null
@@ -1 +0,0 @@
-auto-reply.cpp
diff --git a/messagebus/src/tests/blob/DESC b/messagebus/src/tests/blob/DESC
deleted file mode 100644
index b2ba59c187f..00000000000
--- a/messagebus/src/tests/blob/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test the Blob and BlobRef classes.
diff --git a/messagebus/src/tests/blob/FILES b/messagebus/src/tests/blob/FILES
deleted file mode 100644
index fd1396e55e3..00000000000
--- a/messagebus/src/tests/blob/FILES
+++ /dev/null
@@ -1 +0,0 @@
-blob.cpp
diff --git a/messagebus/src/tests/bucketsequence/DESC b/messagebus/src/tests/bucketsequence/DESC
deleted file mode 100644
index b2e8d79519b..00000000000
--- a/messagebus/src/tests/bucketsequence/DESC
+++ /dev/null
@@ -1 +0,0 @@
-bucketsequence test. Take a look at bucketsequence.cpp for details.
diff --git a/messagebus/src/tests/bucketsequence/FILES b/messagebus/src/tests/bucketsequence/FILES
deleted file mode 100644
index 6db6cc0a2cd..00000000000
--- a/messagebus/src/tests/bucketsequence/FILES
+++ /dev/null
@@ -1 +0,0 @@
-bucketsequence.cpp
diff --git a/messagebus/src/tests/choke/DESC b/messagebus/src/tests/choke/DESC
deleted file mode 100644
index fd1d4965b7d..00000000000
--- a/messagebus/src/tests/choke/DESC
+++ /dev/null
@@ -1 +0,0 @@
-choke test. Take a look at choke.cpp for details.
diff --git a/messagebus/src/tests/choke/FILES b/messagebus/src/tests/choke/FILES
deleted file mode 100644
index 7a0d95feb52..00000000000
--- a/messagebus/src/tests/choke/FILES
+++ /dev/null
@@ -1 +0,0 @@
-choke.cpp
diff --git a/messagebus/src/tests/configagent/DESC b/messagebus/src/tests/configagent/DESC
deleted file mode 100644
index b4db2789b01..00000000000
--- a/messagebus/src/tests/configagent/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test that the config agent is able to configure a config handler using
-config files.
diff --git a/messagebus/src/tests/configagent/FILES b/messagebus/src/tests/configagent/FILES
deleted file mode 100644
index 49fd8684ac1..00000000000
--- a/messagebus/src/tests/configagent/FILES
+++ /dev/null
@@ -1,3 +0,0 @@
-configagent.cpp
-full.cfg
-half.cfg
diff --git a/messagebus/src/tests/context/DESC b/messagebus/src/tests/context/DESC
deleted file mode 100644
index 5a40cc4f9a1..00000000000
--- a/messagebus/src/tests/context/DESC
+++ /dev/null
@@ -1 +0,0 @@
-context test. Take a look at context.cpp for details.
diff --git a/messagebus/src/tests/context/FILES b/messagebus/src/tests/context/FILES
deleted file mode 100644
index a4c148657b9..00000000000
--- a/messagebus/src/tests/context/FILES
+++ /dev/null
@@ -1 +0,0 @@
-context.cpp
diff --git a/messagebus/src/tests/create-test.sh b/messagebus/src/tests/create-test.sh
deleted file mode 100755
index cf979d56ddd..00000000000
--- a/messagebus/src/tests/create-test.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-gen_ignore_file() {
- echo "generating '$1' ..."
- echo ".depend" > $1
- echo "Makefile" >> $1
- echo "${test}_test" >> $1
-}
-
-gen_project_file() {
- echo "generating '$1' ..."
- echo "APPLICATION ${test}_test" > $1
- echo "OBJS $test" >> $1
- echo "LIBS messagebus/testlib/messagebus-test" >> $1
- echo "LIBS messagebus/messagebus" >> $1
- echo "EXTERNALLIBS slobrokserver slobrok fnet vespalib config vespalog" >> $1
- echo "" >> $1
- echo "CUSTOMMAKE" >> $1
- echo "test: depend ${test}_test" >> $1
- echo -e "\t@./${test}_test" >> $1
-}
-
-gen_source() {
- echo "generating '$1' ..."
- echo "#include <vespa/vespalib/testkit/testapp.h>" > $1
- echo "" >> $1
- echo "#include <vespa/log/log.h>" >> $1
- echo "LOG_SETUP(\"${test}_test\");" >> $1
- echo "" >> $1
- echo "// using namespace mbus;" >> $1
- echo "" >> $1
- echo "TEST_SETUP(Test);" >> $1
- echo "" >> $1
- echo "int" >> $1
- echo "Test::Main()" >> $1
- echo "{" >> $1
- echo " TEST_INIT(\"${test}_test\");" >> $1
- echo " TEST_DONE();" >> $1
- echo "}" >> $1
-}
-
-gen_desc() {
- echo "generating '$1' ..."
- echo "$test test. Take a look at $test.cpp for details." > $1
-}
-
-gen_file_list() {
- echo "generating '$1' ..."
- echo "$test.cpp" > $1
-}
-
-if [ $# -ne 1 ]; then
- echo "usage: $0 <name>"
- echo " name: name of the test to create"
- exit 1
-fi
-
-test=$1
-if [ -e $test ]; then
- echo "$test already present, don't want to mess it up..."
- exit 1
-fi
-
-echo "creating directory '$test' ..."
-mkdir -p $test || exit 1
-cd $test || exit 1
-test=`basename $test`
-
-gen_ignore_file .cvsignore
-gen_project_file fastos.project
-gen_source $test.cpp
-gen_desc DESC
-gen_file_list FILES
diff --git a/messagebus/src/tests/emptyreply/DESC b/messagebus/src/tests/emptyreply/DESC
deleted file mode 100644
index 4db41c3c671..00000000000
--- a/messagebus/src/tests/emptyreply/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Simple test of the EmptyReply class.
diff --git a/messagebus/src/tests/emptyreply/FILES b/messagebus/src/tests/emptyreply/FILES
deleted file mode 100644
index 5fbc80bb05c..00000000000
--- a/messagebus/src/tests/emptyreply/FILES
+++ /dev/null
@@ -1 +0,0 @@
-emptyreply.cpp
diff --git a/messagebus/src/tests/error/DESC b/messagebus/src/tests/error/DESC
deleted file mode 100644
index 87bd0cc23fa..00000000000
--- a/messagebus/src/tests/error/DESC
+++ /dev/null
@@ -1 +0,0 @@
-error test. Take a look at error.cpp for details.
diff --git a/messagebus/src/tests/error/FILES b/messagebus/src/tests/error/FILES
deleted file mode 100644
index 779aee64a2c..00000000000
--- a/messagebus/src/tests/error/FILES
+++ /dev/null
@@ -1 +0,0 @@
-error.cpp
diff --git a/messagebus/src/tests/identity/DESC b/messagebus/src/tests/identity/DESC
deleted file mode 100644
index a1fdfb95f8b..00000000000
--- a/messagebus/src/tests/identity/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test that the network identity may be obtained from config.
diff --git a/messagebus/src/tests/identity/FILES b/messagebus/src/tests/identity/FILES
deleted file mode 100644
index 484caddcac7..00000000000
--- a/messagebus/src/tests/identity/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-identity.cpp
-test.cfg
diff --git a/messagebus/src/tests/loadbalance/DESC b/messagebus/src/tests/loadbalance/DESC
deleted file mode 100644
index 67009371472..00000000000
--- a/messagebus/src/tests/loadbalance/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test that service patterns with '*' performs load balancing between
-the services the pattern resolves to.
diff --git a/messagebus/src/tests/loadbalance/FILES b/messagebus/src/tests/loadbalance/FILES
deleted file mode 100644
index 6b28cce1716..00000000000
--- a/messagebus/src/tests/loadbalance/FILES
+++ /dev/null
@@ -1 +0,0 @@
-loadbalance.cpp
diff --git a/messagebus/src/tests/messagebus/DESC b/messagebus/src/tests/messagebus/DESC
deleted file mode 100644
index 19eb03c7048..00000000000
--- a/messagebus/src/tests/messagebus/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Generic messagebus test ported from Java.
diff --git a/messagebus/src/tests/messagebus/FILES b/messagebus/src/tests/messagebus/FILES
deleted file mode 100644
index 0430f52149a..00000000000
--- a/messagebus/src/tests/messagebus/FILES
+++ /dev/null
@@ -1 +0,0 @@
-messagebus.cpp
diff --git a/messagebus/src/tests/messageordering/DESC b/messagebus/src/tests/messageordering/DESC
deleted file mode 100644
index a4e636441ac..00000000000
--- a/messagebus/src/tests/messageordering/DESC
+++ /dev/null
@@ -1 +0,0 @@
-messageordering test. Take a look at messageordering.cpp for details.
diff --git a/messagebus/src/tests/messageordering/FILES b/messagebus/src/tests/messageordering/FILES
deleted file mode 100644
index 51c47a40211..00000000000
--- a/messagebus/src/tests/messageordering/FILES
+++ /dev/null
@@ -1 +0,0 @@
-messageordering.cpp
diff --git a/messagebus/src/tests/messenger/DESC b/messagebus/src/tests/messenger/DESC
deleted file mode 100644
index f4b52840a14..00000000000
--- a/messagebus/src/tests/messenger/DESC
+++ /dev/null
@@ -1 +0,0 @@
-messenger test. Take a look at messenger.cpp for details.
diff --git a/messagebus/src/tests/messenger/FILES b/messagebus/src/tests/messenger/FILES
deleted file mode 100644
index 620b105632e..00000000000
--- a/messagebus/src/tests/messenger/FILES
+++ /dev/null
@@ -1 +0,0 @@
-messenger.cpp
diff --git a/messagebus/src/tests/protocolrepository/DESC b/messagebus/src/tests/protocolrepository/DESC
deleted file mode 100644
index 98e3dc9ef6e..00000000000
--- a/messagebus/src/tests/protocolrepository/DESC
+++ /dev/null
@@ -1 +0,0 @@
-protocolrepository test. Take a look at protocolrepository.cpp for details.
diff --git a/messagebus/src/tests/protocolrepository/FILES b/messagebus/src/tests/protocolrepository/FILES
deleted file mode 100644
index 2fc199b4aef..00000000000
--- a/messagebus/src/tests/protocolrepository/FILES
+++ /dev/null
@@ -1 +0,0 @@
-protocolrepository.cpp
diff --git a/messagebus/src/tests/queue/DESC b/messagebus/src/tests/queue/DESC
deleted file mode 100644
index 1d795755700..00000000000
--- a/messagebus/src/tests/queue/DESC
+++ /dev/null
@@ -1 +0,0 @@
-queue test. Take a look at queue.cpp for details.
diff --git a/messagebus/src/tests/queue/FILES b/messagebus/src/tests/queue/FILES
deleted file mode 100644
index 6fb01ca3173..00000000000
--- a/messagebus/src/tests/queue/FILES
+++ /dev/null
@@ -1 +0,0 @@
-queue.cpp
diff --git a/messagebus/src/tests/replygate/DESC b/messagebus/src/tests/replygate/DESC
deleted file mode 100644
index 2bb86cc490b..00000000000
--- a/messagebus/src/tests/replygate/DESC
+++ /dev/null
@@ -1 +0,0 @@
-replygate test. Take a look at replygate.cpp for details.
diff --git a/messagebus/src/tests/replygate/FILES b/messagebus/src/tests/replygate/FILES
deleted file mode 100644
index 3169994c2ca..00000000000
--- a/messagebus/src/tests/replygate/FILES
+++ /dev/null
@@ -1 +0,0 @@
-replygate.cpp
diff --git a/messagebus/src/tests/resender/DESC b/messagebus/src/tests/resender/DESC
deleted file mode 100644
index 0b234bf57b9..00000000000
--- a/messagebus/src/tests/resender/DESC
+++ /dev/null
@@ -1 +0,0 @@
-resender test. Take a look at resender.cpp for details.
diff --git a/messagebus/src/tests/resender/FILES b/messagebus/src/tests/resender/FILES
deleted file mode 100644
index 16b7c7fe76b..00000000000
--- a/messagebus/src/tests/resender/FILES
+++ /dev/null
@@ -1 +0,0 @@
-resender.cpp
diff --git a/messagebus/src/tests/result/DESC b/messagebus/src/tests/result/DESC
deleted file mode 100644
index 8192ff0830c..00000000000
--- a/messagebus/src/tests/result/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Simple test of the Result class.
diff --git a/messagebus/src/tests/result/FILES b/messagebus/src/tests/result/FILES
deleted file mode 100644
index 55a888fd93f..00000000000
--- a/messagebus/src/tests/result/FILES
+++ /dev/null
@@ -1 +0,0 @@
-result.cpp
diff --git a/messagebus/src/tests/retrypolicy/DESC b/messagebus/src/tests/retrypolicy/DESC
deleted file mode 100644
index 0037ca01c5c..00000000000
--- a/messagebus/src/tests/retrypolicy/DESC
+++ /dev/null
@@ -1 +0,0 @@
-retrypolicy test. Take a look at retrypolicy.cpp for details.
diff --git a/messagebus/src/tests/retrypolicy/FILES b/messagebus/src/tests/retrypolicy/FILES
deleted file mode 100644
index 11a520524fb..00000000000
--- a/messagebus/src/tests/retrypolicy/FILES
+++ /dev/null
@@ -1 +0,0 @@
-retrypolicy.cpp
diff --git a/messagebus/src/tests/routable/DESC b/messagebus/src/tests/routable/DESC
deleted file mode 100644
index 2aa64df8271..00000000000
--- a/messagebus/src/tests/routable/DESC
+++ /dev/null
@@ -1 +0,0 @@
-routable test. Take a look at routable.cpp for details.
diff --git a/messagebus/src/tests/routable/FILES b/messagebus/src/tests/routable/FILES
deleted file mode 100644
index bacc8b159f8..00000000000
--- a/messagebus/src/tests/routable/FILES
+++ /dev/null
@@ -1 +0,0 @@
-routable.cpp
diff --git a/messagebus/src/tests/routablequeue/DESC b/messagebus/src/tests/routablequeue/DESC
deleted file mode 100644
index b1613b4b2f2..00000000000
--- a/messagebus/src/tests/routablequeue/DESC
+++ /dev/null
@@ -1 +0,0 @@
-routablequeue test. Take a look at routablequeue.cpp for details.
diff --git a/messagebus/src/tests/routablequeue/FILES b/messagebus/src/tests/routablequeue/FILES
deleted file mode 100644
index 44a342e00a3..00000000000
--- a/messagebus/src/tests/routablequeue/FILES
+++ /dev/null
@@ -1 +0,0 @@
-routablequeue.cpp
diff --git a/messagebus/src/tests/routeparser/DESC b/messagebus/src/tests/routeparser/DESC
deleted file mode 100644
index 4f38ec8b2bd..00000000000
--- a/messagebus/src/tests/routeparser/DESC
+++ /dev/null
@@ -1 +0,0 @@
-routeparser test. Take a look at routeparser.cpp for details.
diff --git a/messagebus/src/tests/routeparser/FILES b/messagebus/src/tests/routeparser/FILES
deleted file mode 100644
index 3a562440161..00000000000
--- a/messagebus/src/tests/routeparser/FILES
+++ /dev/null
@@ -1 +0,0 @@
-routeparser.cpp
diff --git a/messagebus/src/tests/routing/DESC b/messagebus/src/tests/routing/DESC
deleted file mode 100644
index bb46d61d6cc..00000000000
--- a/messagebus/src/tests/routing/DESC
+++ /dev/null
@@ -1 +0,0 @@
-routing test. Take a look at routing.cpp for details.
diff --git a/messagebus/src/tests/routing/FILES b/messagebus/src/tests/routing/FILES
deleted file mode 100644
index fec1f48186a..00000000000
--- a/messagebus/src/tests/routing/FILES
+++ /dev/null
@@ -1 +0,0 @@
-routing.cpp
diff --git a/messagebus/src/tests/routingcontext/DESC b/messagebus/src/tests/routingcontext/DESC
deleted file mode 100644
index 9e52d1d8055..00000000000
--- a/messagebus/src/tests/routingcontext/DESC
+++ /dev/null
@@ -1 +0,0 @@
-routingcontext test. Take a look at routingcontext.cpp for details.
diff --git a/messagebus/src/tests/routingcontext/FILES b/messagebus/src/tests/routingcontext/FILES
deleted file mode 100644
index 8eb1e780a73..00000000000
--- a/messagebus/src/tests/routingcontext/FILES
+++ /dev/null
@@ -1 +0,0 @@
-routingcontext.cpp
diff --git a/messagebus/src/tests/routingspec/DESC b/messagebus/src/tests/routingspec/DESC
deleted file mode 100644
index 28d7f54decc..00000000000
--- a/messagebus/src/tests/routingspec/DESC
+++ /dev/null
@@ -1 +0,0 @@
-routingspec test. Take a look at routingspec.cpp for details.
diff --git a/messagebus/src/tests/routingspec/FILES b/messagebus/src/tests/routingspec/FILES
deleted file mode 100644
index 4ae228ad5b9..00000000000
--- a/messagebus/src/tests/routingspec/FILES
+++ /dev/null
@@ -1 +0,0 @@
-routingspec.cpp
diff --git a/messagebus/src/tests/rpcserviceaddress/DESC b/messagebus/src/tests/rpcserviceaddress/DESC
deleted file mode 100644
index 2c0f5565509..00000000000
--- a/messagebus/src/tests/rpcserviceaddress/DESC
+++ /dev/null
@@ -1 +0,0 @@
-rpcserviceaddress test. Take a look at rpcserviceaddress.cpp for details.
diff --git a/messagebus/src/tests/rpcserviceaddress/FILES b/messagebus/src/tests/rpcserviceaddress/FILES
deleted file mode 100644
index ea9edf09a87..00000000000
--- a/messagebus/src/tests/rpcserviceaddress/FILES
+++ /dev/null
@@ -1 +0,0 @@
-rpcserviceaddress.cpp
diff --git a/messagebus/src/tests/sendadapter/DESC b/messagebus/src/tests/sendadapter/DESC
deleted file mode 100644
index 35a50283921..00000000000
--- a/messagebus/src/tests/sendadapter/DESC
+++ /dev/null
@@ -1 +0,0 @@
-sendadapter test. Take a look at sendadapter.cpp for details.
diff --git a/messagebus/src/tests/sendadapter/FILES b/messagebus/src/tests/sendadapter/FILES
deleted file mode 100644
index c43cbb6a53c..00000000000
--- a/messagebus/src/tests/sendadapter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sendadapter.cpp
diff --git a/messagebus/src/tests/sequencer/DESC b/messagebus/src/tests/sequencer/DESC
deleted file mode 100644
index 761c069aa92..00000000000
--- a/messagebus/src/tests/sequencer/DESC
+++ /dev/null
@@ -1 +0,0 @@
-sequencer test. Take a look at sequencer.cpp for details.
diff --git a/messagebus/src/tests/sequencer/FILES b/messagebus/src/tests/sequencer/FILES
deleted file mode 100644
index a8d6aeae540..00000000000
--- a/messagebus/src/tests/sequencer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sequencer.cpp
diff --git a/messagebus/src/tests/serviceaddress/DESC b/messagebus/src/tests/serviceaddress/DESC
deleted file mode 100644
index 38fa7c16b1a..00000000000
--- a/messagebus/src/tests/serviceaddress/DESC
+++ /dev/null
@@ -1 +0,0 @@
-serviceaddress test. Take a look at serviceaddress.cpp for details.
diff --git a/messagebus/src/tests/serviceaddress/FILES b/messagebus/src/tests/serviceaddress/FILES
deleted file mode 100644
index 37e17b66b5e..00000000000
--- a/messagebus/src/tests/serviceaddress/FILES
+++ /dev/null
@@ -1 +0,0 @@
-serviceaddress.cpp
diff --git a/messagebus/src/tests/servicepool/DESC b/messagebus/src/tests/servicepool/DESC
deleted file mode 100644
index 21484039b7a..00000000000
--- a/messagebus/src/tests/servicepool/DESC
+++ /dev/null
@@ -1 +0,0 @@
-servicepool test. Take a look at servicepool.cpp for details.
diff --git a/messagebus/src/tests/servicepool/FILES b/messagebus/src/tests/servicepool/FILES
deleted file mode 100644
index 22d1bbb2ba8..00000000000
--- a/messagebus/src/tests/servicepool/FILES
+++ /dev/null
@@ -1 +0,0 @@
-servicepool.cpp
diff --git a/messagebus/src/tests/shutdown/DESC b/messagebus/src/tests/shutdown/DESC
deleted file mode 100644
index 1f289ba9c23..00000000000
--- a/messagebus/src/tests/shutdown/DESC
+++ /dev/null
@@ -1 +0,0 @@
-shutdown test. Take a look at shutdown.cpp for details.
diff --git a/messagebus/src/tests/shutdown/FILES b/messagebus/src/tests/shutdown/FILES
deleted file mode 100644
index ce150a62325..00000000000
--- a/messagebus/src/tests/shutdown/FILES
+++ /dev/null
@@ -1 +0,0 @@
-shutdown.cpp
diff --git a/messagebus/src/tests/simple-roundtrip/DESC b/messagebus/src/tests/simple-roundtrip/DESC
deleted file mode 100644
index ad88203d593..00000000000
--- a/messagebus/src/tests/simple-roundtrip/DESC
+++ /dev/null
@@ -1 +0,0 @@
-simple-roundtrip test. Take a look at simple-roundtrip.cpp for details.
diff --git a/messagebus/src/tests/simple-roundtrip/FILES b/messagebus/src/tests/simple-roundtrip/FILES
deleted file mode 100644
index c6a24435fe2..00000000000
--- a/messagebus/src/tests/simple-roundtrip/FILES
+++ /dev/null
@@ -1 +0,0 @@
-simple-roundtrip.cpp
diff --git a/messagebus/src/tests/simpleprotocol/DESC b/messagebus/src/tests/simpleprotocol/DESC
deleted file mode 100644
index 91d0fa36c57..00000000000
--- a/messagebus/src/tests/simpleprotocol/DESC
+++ /dev/null
@@ -1,3 +0,0 @@
-Small test of the simple protocol defined in the test library. The
-protocol will be used to test other messagebus features, including
-cross-language compatibility.
diff --git a/messagebus/src/tests/simpleprotocol/FILES b/messagebus/src/tests/simpleprotocol/FILES
deleted file mode 100644
index f3c58f7d66e..00000000000
--- a/messagebus/src/tests/simpleprotocol/FILES
+++ /dev/null
@@ -1 +0,0 @@
-simpleprotocol.cpp
diff --git a/messagebus/src/tests/slobrok/DESC b/messagebus/src/tests/slobrok/DESC
deleted file mode 100644
index 7d68f120d91..00000000000
--- a/messagebus/src/tests/slobrok/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-A simple test to ensure we are able to perform
-register/unregister/lookup of messagebus networks against the slobrok.
diff --git a/messagebus/src/tests/slobrok/FILES b/messagebus/src/tests/slobrok/FILES
deleted file mode 100644
index 3fc79ffa0cb..00000000000
--- a/messagebus/src/tests/slobrok/FILES
+++ /dev/null
@@ -1 +0,0 @@
-slobrok.cpp
diff --git a/messagebus/src/tests/sourcesession/DESC b/messagebus/src/tests/sourcesession/DESC
deleted file mode 100644
index 3417f6b602b..00000000000
--- a/messagebus/src/tests/sourcesession/DESC
+++ /dev/null
@@ -1,3 +0,0 @@
-Simple test to verify the basic behavior of the resender and sequencer
-components in a full setup. This test is complemented by the resender
-and sequencer tests.
diff --git a/messagebus/src/tests/sourcesession/FILES b/messagebus/src/tests/sourcesession/FILES
deleted file mode 100644
index b7d8703e7f9..00000000000
--- a/messagebus/src/tests/sourcesession/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sourcesession.cpp
diff --git a/messagebus/src/tests/targetpool/DESC b/messagebus/src/tests/targetpool/DESC
deleted file mode 100644
index 8ba567d0efd..00000000000
--- a/messagebus/src/tests/targetpool/DESC
+++ /dev/null
@@ -1 +0,0 @@
-targetpool test. Take a look at targetpool.cpp for details.
diff --git a/messagebus/src/tests/targetpool/FILES b/messagebus/src/tests/targetpool/FILES
deleted file mode 100644
index 5fb34e2994b..00000000000
--- a/messagebus/src/tests/targetpool/FILES
+++ /dev/null
@@ -1 +0,0 @@
-targetpool.cpp
diff --git a/messagebus/src/tests/throttling/DESC b/messagebus/src/tests/throttling/DESC
deleted file mode 100644
index 4e8dfc56357..00000000000
--- a/messagebus/src/tests/throttling/DESC
+++ /dev/null
@@ -1 +0,0 @@
-throttling test. Take a look at throttling.cpp for details.
diff --git a/messagebus/src/tests/throttling/FILES b/messagebus/src/tests/throttling/FILES
deleted file mode 100644
index 037f6cd99b9..00000000000
--- a/messagebus/src/tests/throttling/FILES
+++ /dev/null
@@ -1 +0,0 @@
-throttling.cpp
diff --git a/messagebus/src/tests/timeout/DESC b/messagebus/src/tests/timeout/DESC
deleted file mode 100644
index c90169db16e..00000000000
--- a/messagebus/src/tests/timeout/DESC
+++ /dev/null
@@ -1 +0,0 @@
-timeout test. Take a look at timeout.cpp for details.
diff --git a/messagebus/src/tests/timeout/FILES b/messagebus/src/tests/timeout/FILES
deleted file mode 100644
index b36cdeb4ddf..00000000000
--- a/messagebus/src/tests/timeout/FILES
+++ /dev/null
@@ -1 +0,0 @@
-timeout.cpp
diff --git a/messagebus/src/tests/trace-roundtrip/DESC b/messagebus/src/tests/trace-roundtrip/DESC
deleted file mode 100644
index eb0d3b38e63..00000000000
--- a/messagebus/src/tests/trace-roundtrip/DESC
+++ /dev/null
@@ -1 +0,0 @@
-trace-roundtrip test. Take a look at trace-roundtrip.cpp for details.
diff --git a/messagebus/src/tests/trace-roundtrip/FILES b/messagebus/src/tests/trace-roundtrip/FILES
deleted file mode 100644
index 13b3374345f..00000000000
--- a/messagebus/src/tests/trace-roundtrip/FILES
+++ /dev/null
@@ -1 +0,0 @@
-trace-roundtrip.cpp
diff --git a/messagebus_test/src/tests/compile-cpp/DESC b/messagebus_test/src/tests/compile-cpp/DESC
deleted file mode 100644
index 465d625ca9e..00000000000
--- a/messagebus_test/src/tests/compile-cpp/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-simple compilation test to check dependencies.
-
diff --git a/messagebus_test/src/tests/compile-cpp/FILES b/messagebus_test/src/tests/compile-cpp/FILES
deleted file mode 100644
index 956ce16a56e..00000000000
--- a/messagebus_test/src/tests/compile-cpp/FILES
+++ /dev/null
@@ -1 +0,0 @@
-compile-cpp.cpp
diff --git a/messagebus_test/src/tests/compile-java/DESC b/messagebus_test/src/tests/compile-java/DESC
deleted file mode 100644
index 465d625ca9e..00000000000
--- a/messagebus_test/src/tests/compile-java/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-simple compilation test to check dependencies.
-
diff --git a/messagebus_test/src/tests/compile-java/FILES b/messagebus_test/src/tests/compile-java/FILES
deleted file mode 100644
index 5b154bb1605..00000000000
--- a/messagebus_test/src/tests/compile-java/FILES
+++ /dev/null
@@ -1 +0,0 @@
-TestCompile.java
diff --git a/messagebus_test/src/tests/error/DESC b/messagebus_test/src/tests/error/DESC
deleted file mode 100644
index 171966761ee..00000000000
--- a/messagebus_test/src/tests/error/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Check that java and cpp messagebus components are able to pass errors
-to each other and preserve meaning.
diff --git a/messagebus_test/src/tests/error/FILES b/messagebus_test/src/tests/error/FILES
deleted file mode 100644
index 571002a917f..00000000000
--- a/messagebus_test/src/tests/error/FILES
+++ /dev/null
@@ -1,8 +0,0 @@
-error.cpp
-out.server.cpp
-out.server.java
-cpp-client.cpp
-cpp-server.cpp
-JavaClient.java
-JavaServer.java
-routing-template.cfg
diff --git a/messagebus_test/src/tests/errorcodes/DESC b/messagebus_test/src/tests/errorcodes/DESC
deleted file mode 100644
index 103ebb4698f..00000000000
--- a/messagebus_test/src/tests/errorcodes/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-A small test to check that error codes are equal in the Java and C++
-implementations.
diff --git a/messagebus_test/src/tests/errorcodes/FILES b/messagebus_test/src/tests/errorcodes/FILES
deleted file mode 100644
index 766402133fb..00000000000
--- a/messagebus_test/src/tests/errorcodes/FILES
+++ /dev/null
@@ -1,5 +0,0 @@
-dumpcodes.cpp
-DumpCodes.java
-ref-dump.txt
-cpp-dump.txt
-java-dump.txt
diff --git a/messagebus_test/src/tests/speed/DESC b/messagebus_test/src/tests/speed/DESC
deleted file mode 100644
index 10734957438..00000000000
--- a/messagebus_test/src/tests/speed/DESC
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a simple test that gives a rough idea of the inherent overhead
-in messagebus. It sends simple messages back and forth with the
-simplest routing setup possible. This test also tests that messagebus
-works across Java and C++.
diff --git a/messagebus_test/src/tests/speed/FILES b/messagebus_test/src/tests/speed/FILES
deleted file mode 100644
index 09f0a5ec1d3..00000000000
--- a/messagebus_test/src/tests/speed/FILES
+++ /dev/null
@@ -1,8 +0,0 @@
-speed.cpp
-out.server.cpp
-out.server.java
-cpp-client.cpp
-cpp-server.cpp
-JavaClient.java
-JavaServer.java
-routing-template.cfg
diff --git a/messagebus_test/src/tests/trace/DESC b/messagebus_test/src/tests/trace/DESC
deleted file mode 100644
index 452e75aefea..00000000000
--- a/messagebus_test/src/tests/trace/DESC
+++ /dev/null
@@ -1 +0,0 @@
-trace test. Take a look at trace.cpp for details.
diff --git a/messagebus_test/src/tests/trace/FILES b/messagebus_test/src/tests/trace/FILES
deleted file mode 100644
index 891e4df6273..00000000000
--- a/messagebus_test/src/tests/trace/FILES
+++ /dev/null
@@ -1,19 +0,0 @@
-trace.cpp
-cpp-server.cpp
-JavaServer.java
-routing.cfg
-out.server.cpp1
-out.server.cpp2
-out.server.cpp3
-out.server.cpp4
-out.server.cpp5
-out.server.cpp6
-out.server.cpp7
-out.server.java1
-out.server.java2
-out.server.java3
-out.server.java4
-out.server.java5
-out.server.java6
-out.server.java7
-progdefs.sh
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/reports/BaseReport.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/reports/BaseReport.java
index 42804b69b17..f40294455d5 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/reports/BaseReport.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/reports/BaseReport.java
@@ -11,6 +11,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Objects;
import java.util.Optional;
+import java.util.OptionalLong;
import static com.yahoo.yolean.Exceptions.uncheck;
@@ -38,28 +39,55 @@ public class BaseReport {
public static final String CREATED_FIELD = "createdMillis";
/** The description of the error (implies wanting to fail out node). */
public static final String DESCRIPTION_FIELD = "description";
+ /** The type of report, see {@link Type} enum. */
+ public static final String TYPE_FIELD = "type";
protected static final ObjectMapper mapper = new ObjectMapper();
- private final Long createdMillis;
- private final String description;
+ private final OptionalLong createdMillis;
+ private final Optional<String> description;
+ private final Type type;
+
+ public enum Type {
+ /** The default type if none given, or not recognized. */
+ UNSPECIFIED,
+ /** The host has a soft failure and should parked for manual inspection. */
+ SOFT_FAIL,
+ /** The host has a hard failure and should be given back to siteops. */
+ HARD_FAIL
+ }
@JsonCreator
public BaseReport(@JsonProperty(CREATED_FIELD) Long createdMillisOrNull,
- @JsonProperty(DESCRIPTION_FIELD) String descriptionOrNull) {
- this.createdMillis = createdMillisOrNull;
- this.description = descriptionOrNull;
+ @JsonProperty(DESCRIPTION_FIELD) String descriptionOrNull,
+ @JsonProperty(TYPE_FIELD) Type typeOrNull) {
+ this.createdMillis = createdMillisOrNull == null ? OptionalLong.empty() : OptionalLong.of(createdMillisOrNull);
+ this.description = Optional.ofNullable(descriptionOrNull);
+ this.type = typeOrNull == null ? Type.UNSPECIFIED : typeOrNull;
+ }
+ public BaseReport(Long createdMillisOrNull, String descriptionOrNull) {
+ this(createdMillisOrNull, descriptionOrNull, Type.UNSPECIFIED);
}
@JsonGetter(CREATED_FIELD)
public final Long getCreatedMillisOrNull() {
- return createdMillis;
+ return createdMillis.isPresent() ? createdMillis.getAsLong() : null;
}
@JsonGetter(DESCRIPTION_FIELD)
public final String getDescriptionOrNull() {
- return description;
+ return description.orElse(null);
+ }
+
+ /** null is returned on UNSPECIFIED to avoid noisy reports. */
+ @JsonGetter(TYPE_FIELD)
+ public final Type getTypeOrNull() {
+ return type == Type.UNSPECIFIED ? null : type;
+ }
+
+ public Type getType() {
+ return type;
}
/**
@@ -71,7 +99,8 @@ public class BaseReport {
public boolean updates(BaseReport current) {
if (this == current) return false;
if (this.getClass() != current.getClass()) return true;
- return !Objects.equals(description, current.description);
+ return !Objects.equals(description, current.description) ||
+ !Objects.equals(type, current.type);
}
/** A variant of {@link #updates(BaseReport)} handling possibly absent reports, whether new or old. */
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNodeTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNodeTest.java
index ded6d4fbf61..e1e7ea240b0 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNodeTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNodeTest.java
@@ -53,7 +53,7 @@ public class NodeRepositoryNodeTest {
node.reports.put("ridTwo", reportJson);
// Add ridTwo report to attributes
- BaseReport reportTwo = new BaseReport(3L, "desc");
+ BaseReport reportTwo = new BaseReport(3L, "desc", null);
attributes.withReport("ridTwo", reportTwo.toJsonNode());
// Verify node serializes to expected, as well as attributes patched on node.
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/reports/BaseReportTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/reports/BaseReportTest.java
index 561733d7d76..9e4a807f19b 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/reports/BaseReportTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/reports/BaseReportTest.java
@@ -4,6 +4,8 @@ package com.yahoo.vespa.hosted.node.admin.configserver.noderepository.reports;
import com.yahoo.test.json.JsonTestHelper;
import org.junit.Test;
+import static com.yahoo.vespa.hosted.node.admin.configserver.noderepository.reports.BaseReport.Type.SOFT_FAIL;
+import static com.yahoo.vespa.hosted.node.admin.configserver.noderepository.reports.BaseReport.Type.UNSPECIFIED;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -13,35 +15,61 @@ import static org.junit.Assert.assertTrue;
*/
public class BaseReportTest {
private static final String JSON_1 = "{\"createdMillis\": 1, \"description\": \"desc\"}";
+ private static final String JSON_2 = "{\"createdMillis\": 1, \"description\": \"desc\", \"type\": \"SOFT_FAIL\"}";
+
@Test
- public void testSerialization() {
- JsonTestHelper.assertJsonEquals(new BaseReport(1L, "desc").toJsonNode(),
+ public void testSerialization1() {
+ JsonTestHelper.assertJsonEquals(new BaseReport(1L, "desc", SOFT_FAIL).toJsonNode(),
+ JSON_2);
+ JsonTestHelper.assertJsonEquals(new BaseReport(null, "desc", SOFT_FAIL).toJsonNode(),
+ "{\"description\": \"desc\", \"type\": \"SOFT_FAIL\"}");
+ JsonTestHelper.assertJsonEquals(new BaseReport(1L, null, SOFT_FAIL).toJsonNode(),
+ "{\"createdMillis\": 1, \"type\": \"SOFT_FAIL\"}");
+ JsonTestHelper.assertJsonEquals(new BaseReport(null, null, SOFT_FAIL).toJsonNode(),
+ "{\"type\": \"SOFT_FAIL\"}");
+
+ JsonTestHelper.assertJsonEquals(new BaseReport(1L, "desc", null).toJsonNode(),
JSON_1);
- JsonTestHelper.assertJsonEquals(new BaseReport(null, "desc").toJsonNode(),
+ JsonTestHelper.assertJsonEquals(new BaseReport(null, "desc", null).toJsonNode(),
"{\"description\": \"desc\"}");
- JsonTestHelper.assertJsonEquals(new BaseReport(1L, null).toJsonNode(),
+ JsonTestHelper.assertJsonEquals(new BaseReport(1L, null, null).toJsonNode(),
"{\"createdMillis\": 1}");
- JsonTestHelper.assertJsonEquals(new BaseReport(null, null).toJsonNode(),
+ JsonTestHelper.assertJsonEquals(new BaseReport(null, null, null).toJsonNode(),
"{}");
}
@Test
public void testShouldUpdate() {
- BaseReport report = new BaseReport(1L, "desc");
+ BaseReport report = new BaseReport(1L, "desc", SOFT_FAIL);
assertFalse(report.updates(report));
- assertFalse(new BaseReport(1L, "desc").updates(report));
- assertFalse(new BaseReport(2L, "desc").updates(report));
- assertFalse(new BaseReport(null, "desc").updates(report));
- assertTrue(new BaseReport(1L, "desc 2").updates(report));
- assertTrue(new BaseReport(1L, null).updates(report));
+ // createdMillis is ignored
+ assertFalse(new BaseReport(1L, "desc", SOFT_FAIL).updates(report));
+ assertFalse(new BaseReport(2L, "desc", SOFT_FAIL).updates(report));
+ assertFalse(new BaseReport(null, "desc", SOFT_FAIL).updates(report));
+
+ // description is not ignored
+ assertTrue(new BaseReport(1L, "desc 2", SOFT_FAIL).updates(report));
+ assertTrue(new BaseReport(1L, null, SOFT_FAIL).updates(report));
+
+ // type is not ignored
+ assertTrue(new BaseReport(1L, "desc", null).updates(report));
+ assertTrue(new BaseReport(1L, "desc", BaseReport.Type.HARD_FAIL).updates(report));
}
@Test
public void testJsonSerialization() {
- BaseReport report = BaseReport.fromJson(JSON_1);
+ BaseReport report = BaseReport.fromJson(JSON_2);
assertEquals(1L, (long) report.getCreatedMillisOrNull());
assertEquals("desc", report.getDescriptionOrNull());
- JsonTestHelper.assertJsonEquals(report.toJson(), JSON_1);
+ assertEquals(SOFT_FAIL, report.getTypeOrNull());
+ JsonTestHelper.assertJsonEquals(report.toJson(), JSON_2);
+ }
+
+ @Test
+ public void testUnspecifiedType() {
+ BaseReport report = new BaseReport(1L, "desc", null);
+ assertEquals(null, report.getTypeOrNull());
+ assertEquals(UNSPECIFIED, report.getType());
}
} \ No newline at end of file
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisionMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisionMaintainer.java
index d38738ff019..becad405415 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisionMaintainer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisionMaintainer.java
@@ -3,6 +3,9 @@ package com.yahoo.vespa.hosted.provision.maintenance;
import com.yahoo.config.provision.NodeType;
import com.yahoo.transaction.Mutex;
+import com.yahoo.vespa.flags.BooleanFlag;
+import com.yahoo.vespa.flags.FlagSource;
+import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
@@ -24,15 +27,19 @@ public class HostDeprovisionMaintainer extends Maintainer {
private static final Logger log = Logger.getLogger(HostDeprovisionMaintainer.class.getName());
private final HostProvisioner hostProvisioner;
+ private final BooleanFlag dynamicProvisioningEnabled;
- public HostDeprovisionMaintainer(
- NodeRepository nodeRepository, Duration interval, JobControl jobControl, HostProvisioner hostProvisioner) {
+ public HostDeprovisionMaintainer(NodeRepository nodeRepository, Duration interval, JobControl jobControl,
+ HostProvisioner hostProvisioner, FlagSource flagSource) {
super(nodeRepository, interval, jobControl);
this.hostProvisioner = hostProvisioner;
+ this.dynamicProvisioningEnabled = Flags.ENABLE_DYNAMIC_PROVISIONING.bindTo(flagSource);
}
@Override
protected void maintain() {
+ if (! dynamicProvisioningEnabled.value()) return;
+
try (Mutex lock = nodeRepository().lockAllocation()) {
NodeList nodes = nodeRepository().list();
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostProvisionMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostProvisionMaintainer.java
index 5acdc56ffda..5490216fdf3 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostProvisionMaintainer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostProvisionMaintainer.java
@@ -3,12 +3,16 @@ package com.yahoo.vespa.hosted.provision.maintenance;
import com.yahoo.config.provision.NodeType;
import com.yahoo.transaction.Mutex;
+import com.yahoo.vespa.flags.BooleanFlag;
+import com.yahoo.vespa.flags.FlagSource;
+import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
import com.yahoo.vespa.hosted.provision.node.Agent;
-import com.yahoo.vespa.hosted.provision.provisioning.HostProvisioner;
import com.yahoo.vespa.hosted.provision.provisioning.FatalProvisioningException;
+import com.yahoo.vespa.hosted.provision.provisioning.HostProvisioner;
+import com.yahoo.yolean.Exceptions;
import java.time.Duration;
import java.util.List;
@@ -27,15 +31,19 @@ public class HostProvisionMaintainer extends Maintainer {
private static final Logger log = Logger.getLogger(HostProvisionMaintainer.class.getName());
private final HostProvisioner hostProvisioner;
+ private final BooleanFlag dynamicProvisioningEnabled;
- public HostProvisionMaintainer(
- NodeRepository nodeRepository, Duration interval, JobControl jobControl, HostProvisioner hostProvisioner) {
+ public HostProvisionMaintainer(NodeRepository nodeRepository, Duration interval, JobControl jobControl,
+ HostProvisioner hostProvisioner, FlagSource flagSource) {
super(nodeRepository, interval, jobControl);
this.hostProvisioner = hostProvisioner;
+ this.dynamicProvisioningEnabled = Flags.ENABLE_DYNAMIC_PROVISIONING.bindTo(flagSource);
}
@Override
protected void maintain() {
+ if (! dynamicProvisioningEnabled.value()) return;
+
try (Mutex lock = nodeRepository().lockAllocation()) {
NodeList nodes = nodeRepository().list();
@@ -43,6 +51,8 @@ public class HostProvisionMaintainer extends Maintainer {
try {
List<Node> updatedNodes = hostProvisioner.provision(host, children);
nodeRepository().write(updatedNodes);
+ } catch (IllegalArgumentException | IllegalStateException e) {
+ log.log(Level.INFO, "Failed to provision " + host.hostname() + ": " + Exceptions.toMessageString(e));
} catch (FatalProvisioningException e) {
log.log(Level.SEVERE, "Failed to provision " + host.hostname() + ", failing out the host recursively", e);
// Fail out as operator to force a quick redeployment
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java
index 2c784de06ca..2496d9ba8c9 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java
@@ -11,6 +11,7 @@ import com.yahoo.config.provision.Provisioner;
import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.Zone;
import com.yahoo.jdisc.Metric;
+import com.yahoo.vespa.flags.FlagSource;
import com.yahoo.vespa.hosted.provision.NodeRepository;
import com.yahoo.vespa.hosted.provision.maintenance.retire.RetireIPv4OnlyNodes;
import com.yahoo.vespa.hosted.provision.maintenance.retire.RetirementPolicy;
@@ -64,16 +65,17 @@ public class NodeRepositoryMaintenance extends AbstractComponent {
Zone zone, Orchestrator orchestrator, Metric metric,
ConfigserverConfig configserverConfig,
DuperModelInfraApi duperModelInfraApi,
- ProvisionServiceProvider provisionServiceProvider) {
+ ProvisionServiceProvider provisionServiceProvider,
+ FlagSource flagSource) {
this(nodeRepository, deployer, provisioner, hostLivenessTracker, serviceMonitor, zone, Clock.systemUTC(),
- orchestrator, metric, configserverConfig, duperModelInfraApi, provisionServiceProvider);
+ orchestrator, metric, configserverConfig, duperModelInfraApi, provisionServiceProvider, flagSource);
}
public NodeRepositoryMaintenance(NodeRepository nodeRepository, Deployer deployer, Provisioner provisioner,
HostLivenessTracker hostLivenessTracker, ServiceMonitor serviceMonitor,
Zone zone, Clock clock, Orchestrator orchestrator, Metric metric,
ConfigserverConfig configserverConfig, DuperModelInfraApi duperModelInfraApi,
- ProvisionServiceProvider provisionServiceProvider) {
+ ProvisionServiceProvider provisionServiceProvider, FlagSource flagSource) {
DefaultTimes defaults = new DefaultTimes(zone);
jobControl = new JobControl(nodeRepository.database());
infrastructureVersions = new InfrastructureVersions(nodeRepository.database());
@@ -93,9 +95,9 @@ public class NodeRepositoryMaintenance extends AbstractComponent {
loadBalancerExpirer = provisionServiceProvider.getLoadBalancerService().map(lbService ->
new LoadBalancerExpirer(nodeRepository, durationFromEnv("load_balancer_expiry").orElse(defaults.loadBalancerExpiry), jobControl, lbService));
hostProvisionMaintainer = provisionServiceProvider.getHostProvisioner().map(hostProvisioner ->
- new HostProvisionMaintainer(nodeRepository, durationFromEnv("host_provisioner_interval").orElse(defaults.hostProvisionerInterval), jobControl, hostProvisioner));
+ new HostProvisionMaintainer(nodeRepository, durationFromEnv("host_provisioner_interval").orElse(defaults.hostProvisionerInterval), jobControl, hostProvisioner, flagSource));
hostDeprovisionMaintainer = provisionServiceProvider.getHostProvisioner().map(hostProvisioner ->
- new HostDeprovisionMaintainer(nodeRepository, durationFromEnv("host_deprovisioner_interval").orElse(defaults.hostDeprovisionerInterval), jobControl, hostProvisioner));
+ new HostDeprovisionMaintainer(nodeRepository, durationFromEnv("host_deprovisioner_interval").orElse(defaults.hostDeprovisionerInterval), jobControl, hostProvisioner, flagSource));
// The DuperModel is filled with infrastructure applications by the infrastructure provisioner, so explicitly run that now
infrastructureProvisioner.maintain();
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionedHost.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionedHost.java
index d13643de5b1..355ba92acdf 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionedHost.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionedHost.java
@@ -30,15 +30,35 @@ public class ProvisionedHost {
}
/** Generate {@link Node} instance representing the provisioned physical host */
- Node generateHost() {
+ public Node generateHost() {
return Node.create(id, Set.of(), Set.of(), hostHostname, Optional.empty(), hostFlavor, NodeType.host);
}
/** Generate {@link Node} instance representing the node running on this physical host */
- Node generateNode() {
+ public Node generateNode() {
return Node.createDockerNode(Set.of(), Set.of(), nodeHostname, Optional.of(hostHostname), nodeFlavor, NodeType.tenant);
}
+ public String getId() {
+ return id;
+ }
+
+ public String getHostHostname() {
+ return hostHostname;
+ }
+
+ public Flavor getHostFlavor() {
+ return hostFlavor;
+ }
+
+ public String getNodeHostname() {
+ return nodeHostname;
+ }
+
+ public Flavor getNodeFlavor() {
+ return nodeFlavor;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java
index ecbe268cae0..e17e1871555 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java
@@ -26,6 +26,7 @@ public class ContainerConfig {
" <component id='com.yahoo.vespa.hosted.provision.testutils.MockNodeRepository'/>\n" +
" <component id='com.yahoo.vespa.hosted.provision.testutils.MockProvisionServiceProvider'/>\n" +
" <component id='com.yahoo.vespa.hosted.provision.maintenance.NodeRepositoryMaintenance'/>\n" +
+ " <component id='com.yahoo.vespa.flags.InMemoryFlagSource'/>\n" +
" <component id='com.yahoo.config.provision.Zone'/>\n" +
" <handler id='com.yahoo.vespa.hosted.provision.restapi.v2.NodesApiHandler'>\n" +
" <binding>http://*/nodes/v2/*</binding>\n" +
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisionMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisionMaintainerTest.java
index 95c857527a1..aa057d794d1 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisionMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisionMaintainerTest.java
@@ -2,6 +2,9 @@
package com.yahoo.vespa.hosted.provision.maintenance;
import com.yahoo.config.provision.NodeType;
+import com.yahoo.vespa.flags.FlagSource;
+import com.yahoo.vespa.flags.Flags;
+import com.yahoo.vespa.flags.InMemoryFlagSource;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.provisioning.HostProvisioner;
@@ -32,8 +35,9 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
public class HostDeprovisionMaintainerTest {
private final HostProvisionerTester tester = new HostProvisionerTester();
private final HostProvisioner hostProvisioner = mock(HostProvisioner.class);
+ private final FlagSource flagSource = new InMemoryFlagSource().withBooleanFlag(Flags.ENABLE_DYNAMIC_PROVISIONING.id(), true);
private final HostDeprovisionMaintainer maintainer = new HostDeprovisionMaintainer(
- tester.nodeRepository(), Duration.ofDays(1), tester.jobControl(), hostProvisioner);
+ tester.nodeRepository(), Duration.ofDays(1), tester.jobControl(), hostProvisioner, flagSource);
@Test
public void removes_nodes_if_successful() {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostProvisionMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostProvisionMaintainerTest.java
index 1857a4ad74d..7089d436c6d 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostProvisionMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostProvisionMaintainerTest.java
@@ -10,6 +10,9 @@ import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.Zone;
import com.yahoo.test.ManualClock;
import com.yahoo.vespa.curator.mock.MockCurator;
+import com.yahoo.vespa.flags.FlagSource;
+import com.yahoo.vespa.flags.Flags;
+import com.yahoo.vespa.flags.InMemoryFlagSource;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
@@ -18,9 +21,9 @@ import com.yahoo.vespa.hosted.provision.node.Generation;
import com.yahoo.vespa.hosted.provision.node.History;
import com.yahoo.vespa.hosted.provision.node.Reports;
import com.yahoo.vespa.hosted.provision.node.Status;
+import com.yahoo.vespa.hosted.provision.provisioning.FatalProvisioningException;
import com.yahoo.vespa.hosted.provision.provisioning.FlavorConfigBuilder;
import com.yahoo.vespa.hosted.provision.provisioning.HostProvisioner;
-import com.yahoo.vespa.hosted.provision.provisioning.FatalProvisioningException;
import com.yahoo.vespa.hosted.provision.testutils.MockNameResolver;
import org.junit.Test;
@@ -52,8 +55,9 @@ public class HostProvisionMaintainerTest {
private final HostProvisionerTester tester = new HostProvisionerTester();
private final HostProvisioner hostProvisioner = mock(HostProvisioner.class);
+ private final FlagSource flagSource = new InMemoryFlagSource().withBooleanFlag(Flags.ENABLE_DYNAMIC_PROVISIONING.id(), true);
private final HostProvisionMaintainer maintainer = new HostProvisionMaintainer(
- tester.nodeRepository(), Duration.ofDays(1), tester.jobControl(), hostProvisioner);
+ tester.nodeRepository(), Duration.ofDays(1), tester.jobControl(), hostProvisioner, flagSource);
@Test
public void delegates_to_host_provisioner_and_writes_back_result() {
diff --git a/searchcommon/src/tests/attribute/config/DESC b/searchcommon/src/tests/attribute/config/DESC
deleted file mode 100644
index b98a0b64649..00000000000
--- a/searchcommon/src/tests/attribute/config/DESC
+++ /dev/null
@@ -1 +0,0 @@
-search::attribute::Config test. Take a look at attribute_config_test.cpp for details.
diff --git a/searchcommon/src/tests/attribute/config/FILES b/searchcommon/src/tests/attribute/config/FILES
deleted file mode 100644
index 90f22156a0a..00000000000
--- a/searchcommon/src/tests/attribute/config/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attribute_config_test.cpp
diff --git a/searchcommon/src/tests/schema/DESC b/searchcommon/src/tests/schema/DESC
deleted file mode 100644
index e357c31742a..00000000000
--- a/searchcommon/src/tests/schema/DESC
+++ /dev/null
@@ -1 +0,0 @@
-schema test. Take a look at schema.cpp for details.
diff --git a/searchcommon/src/tests/schema/FILES b/searchcommon/src/tests/schema/FILES
deleted file mode 100644
index 4688fde12ce..00000000000
--- a/searchcommon/src/tests/schema/FILES
+++ /dev/null
@@ -1 +0,0 @@
-schema.cpp
diff --git a/searchcore/src/tests/fdispatch/fnet_search/DESC b/searchcore/src/tests/fdispatch/fnet_search/DESC
deleted file mode 100644
index 4bc24883896..00000000000
--- a/searchcore/src/tests/fdispatch/fnet_search/DESC
+++ /dev/null
@@ -1 +0,0 @@
-search_path test. Take a look at search_path_test.cpp for details.
diff --git a/searchcore/src/tests/fdispatch/fnet_search/FILES b/searchcore/src/tests/fdispatch/fnet_search/FILES
deleted file mode 100644
index a38e13c26fd..00000000000
--- a/searchcore/src/tests/fdispatch/fnet_search/FILES
+++ /dev/null
@@ -1 +0,0 @@
-search_path_test.cpp
diff --git a/searchcore/src/tests/fdispatch/randomrow/DESC b/searchcore/src/tests/fdispatch/randomrow/DESC
deleted file mode 100644
index 86d8eecd44c..00000000000
--- a/searchcore/src/tests/fdispatch/randomrow/DESC
+++ /dev/null
@@ -1 +0,0 @@
-randomrow test. Take a look at randomrow_test.cpp for details.
diff --git a/searchcore/src/tests/fdispatch/randomrow/FILES b/searchcore/src/tests/fdispatch/randomrow/FILES
deleted file mode 100644
index 2f15498219f..00000000000
--- a/searchcore/src/tests/fdispatch/randomrow/FILES
+++ /dev/null
@@ -1 +0,0 @@
-randomrow_test.cpp
diff --git a/searchcore/src/tests/grouping/DESC b/searchcore/src/tests/grouping/DESC
deleted file mode 100644
index 1aa6cb37e89..00000000000
--- a/searchcore/src/tests/grouping/DESC
+++ /dev/null
@@ -1 +0,0 @@
-grouping test. Take a look at grouping.cpp for details.
diff --git a/searchcore/src/tests/grouping/FILES b/searchcore/src/tests/grouping/FILES
deleted file mode 100644
index a3a45cfb198..00000000000
--- a/searchcore/src/tests/grouping/FILES
+++ /dev/null
@@ -1 +0,0 @@
-grouping.cpp
diff --git a/searchcore/src/tests/proton/attribute/DESC b/searchcore/src/tests/proton/attribute/DESC
deleted file mode 100644
index bd71a808c51..00000000000
--- a/searchcore/src/tests/proton/attribute/DESC
+++ /dev/null
@@ -1 +0,0 @@
-attribute test. Take a look at attribute.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/FILES b/searchcore/src/tests/proton/attribute/FILES
deleted file mode 100644
index 84bc710d58b..00000000000
--- a/searchcore/src/tests/proton/attribute/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attribute.cpp
diff --git a/searchcore/src/tests/proton/attribute/attribute_aspect_delayer/DESC b/searchcore/src/tests/proton/attribute/attribute_aspect_delayer/DESC
deleted file mode 100644
index 0ad2e46da02..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_aspect_delayer/DESC
+++ /dev/null
@@ -1 +0,0 @@
-attribute aspect delayer test. Take a look at attribute_aspect_delayer_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/attribute_aspect_delayer/FILES b/searchcore/src/tests/proton/attribute/attribute_aspect_delayer/FILES
deleted file mode 100644
index 459c36ca3b4..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_aspect_delayer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attribute_aspect_delayer_test.cpp
diff --git a/searchcore/src/tests/proton/attribute/attribute_directory/DESC b/searchcore/src/tests/proton/attribute/attribute_directory/DESC
deleted file mode 100644
index f529e4ac5e4..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_directory/DESC
+++ /dev/null
@@ -1 +0,0 @@
-AttributeDirectory test. Take a look at attribute_directory_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/attribute_directory/FILES b/searchcore/src/tests/proton/attribute/attribute_directory/FILES
deleted file mode 100644
index fccd4ba135a..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_directory/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attribute_directory_test.cpp
diff --git a/searchcore/src/tests/proton/attribute/attribute_initializer/DESC b/searchcore/src/tests/proton/attribute/attribute_initializer/DESC
deleted file mode 100644
index d7e2c61d85d..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_initializer/DESC
+++ /dev/null
@@ -1 +0,0 @@
-attribute initializer test. Take a look at attribute_initializer_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/attribute_initializer/FILES b/searchcore/src/tests/proton/attribute/attribute_initializer/FILES
deleted file mode 100644
index cedbcb0155b..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_initializer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attribute_initializer_test.cpp
diff --git a/searchcore/src/tests/proton/attribute/attribute_manager/DESC b/searchcore/src/tests/proton/attribute/attribute_manager/DESC
deleted file mode 100644
index f1cdc01fd47..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_manager/DESC
+++ /dev/null
@@ -1 +0,0 @@
-attribute manager test. Take a look at attribute_manager_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/attribute_manager/FILES b/searchcore/src/tests/proton/attribute/attribute_manager/FILES
deleted file mode 100644
index 8e4fbdcb888..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_manager/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attribute_manager_test.cpp
diff --git a/searchcore/src/tests/proton/attribute/attribute_populator/DESC b/searchcore/src/tests/proton/attribute/attribute_populator/DESC
deleted file mode 100644
index 5ef9dcb2709..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_populator/DESC
+++ /dev/null
@@ -1 +0,0 @@
-attribute_populator test. Take a look at attribute_populator_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/attribute_populator/FILES b/searchcore/src/tests/proton/attribute/attribute_populator/FILES
deleted file mode 100644
index b6bf0bf8458..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_populator/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attribute_populator_test.cpp
diff --git a/searchcore/src/tests/proton/attribute/attribute_usage_filter/DESC b/searchcore/src/tests/proton/attribute/attribute_usage_filter/DESC
deleted file mode 100644
index 31b3afbcdf7..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_usage_filter/DESC
+++ /dev/null
@@ -1 +0,0 @@
-AttributeUsageFilter test. Take a look at attribute_usage_filter_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/attribute_usage_filter/FILES b/searchcore/src/tests/proton/attribute/attribute_usage_filter/FILES
deleted file mode 100644
index b63aeb79d02..00000000000
--- a/searchcore/src/tests/proton/attribute/attribute_usage_filter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attribute_usage_filter_test.cpp
diff --git a/searchcore/src/tests/proton/attribute/attributes_state_explorer/DESC b/searchcore/src/tests/proton/attribute/attributes_state_explorer/DESC
deleted file mode 100644
index 1459d32ddae..00000000000
--- a/searchcore/src/tests/proton/attribute/attributes_state_explorer/DESC
+++ /dev/null
@@ -1 +0,0 @@
-attributes_state_explorer test. Take a look at attributes_state_explorer_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/attributes_state_explorer/FILES b/searchcore/src/tests/proton/attribute/attributes_state_explorer/FILES
deleted file mode 100644
index f49eb2b8e86..00000000000
--- a/searchcore/src/tests/proton/attribute/attributes_state_explorer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attributes_state_explorer_test.cpp
diff --git a/searchcore/src/tests/proton/attribute/document_field_populator/DESC b/searchcore/src/tests/proton/attribute/document_field_populator/DESC
deleted file mode 100644
index cdc71250210..00000000000
--- a/searchcore/src/tests/proton/attribute/document_field_populator/DESC
+++ /dev/null
@@ -1 +0,0 @@
-document_field_populator test. Take a look at document_field_populator_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/document_field_populator/FILES b/searchcore/src/tests/proton/attribute/document_field_populator/FILES
deleted file mode 100644
index 21f62452acf..00000000000
--- a/searchcore/src/tests/proton/attribute/document_field_populator/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_field_populator_test.cpp
diff --git a/searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/DESC b/searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/DESC
deleted file mode 100644
index ec5a407ddbd..00000000000
--- a/searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/DESC
+++ /dev/null
@@ -1 +0,0 @@
-exclusive_attribute_read_accessor test. Take a look at exclusive_attribute_read_accessor_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/FILES b/searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/FILES
deleted file mode 100644
index 74a9ab77547..00000000000
--- a/searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/FILES
+++ /dev/null
@@ -1 +0,0 @@
-exclusive_attribute_read_accessor_test.cpp
diff --git a/searchcore/src/tests/proton/attribute/imported_attributes_context/DESC b/searchcore/src/tests/proton/attribute/imported_attributes_context/DESC
deleted file mode 100644
index 02050ecaf20..00000000000
--- a/searchcore/src/tests/proton/attribute/imported_attributes_context/DESC
+++ /dev/null
@@ -1 +0,0 @@
-imported_attributes_context test. Take a look at imported_attributes_context_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/imported_attributes_context/FILES b/searchcore/src/tests/proton/attribute/imported_attributes_context/FILES
deleted file mode 100644
index 6ff2c1b61f6..00000000000
--- a/searchcore/src/tests/proton/attribute/imported_attributes_context/FILES
+++ /dev/null
@@ -1 +0,0 @@
-imported_attributes_context_test.cpp
diff --git a/searchcore/src/tests/proton/attribute/imported_attributes_repo/DESC b/searchcore/src/tests/proton/attribute/imported_attributes_repo/DESC
deleted file mode 100644
index 7d312b1df98..00000000000
--- a/searchcore/src/tests/proton/attribute/imported_attributes_repo/DESC
+++ /dev/null
@@ -1 +0,0 @@
-imported_attributes_repo test. Take a look at imported_attributes_repo_test.cpp for details.
diff --git a/searchcore/src/tests/proton/attribute/imported_attributes_repo/FILES b/searchcore/src/tests/proton/attribute/imported_attributes_repo/FILES
deleted file mode 100644
index 0e4f940c76c..00000000000
--- a/searchcore/src/tests/proton/attribute/imported_attributes_repo/FILES
+++ /dev/null
@@ -1 +0,0 @@
-imported_attributes_repo_test.cpp
diff --git a/searchcore/src/tests/proton/bucketdb/bucketdb/DESC b/searchcore/src/tests/proton/bucketdb/bucketdb/DESC
deleted file mode 100644
index 59057628f89..00000000000
--- a/searchcore/src/tests/proton/bucketdb/bucketdb/DESC
+++ /dev/null
@@ -1 +0,0 @@
-bucketdb test. Take a look at bucketdb_test.cpp for details.
diff --git a/searchcore/src/tests/proton/bucketdb/bucketdb/FILES b/searchcore/src/tests/proton/bucketdb/bucketdb/FILES
deleted file mode 100644
index c5cd1105c23..00000000000
--- a/searchcore/src/tests/proton/bucketdb/bucketdb/FILES
+++ /dev/null
@@ -1 +0,0 @@
-bucketdb_test.cpp
diff --git a/searchcore/src/tests/proton/common/document_type_inspector/DESC b/searchcore/src/tests/proton/common/document_type_inspector/DESC
deleted file mode 100644
index b40b3219939..00000000000
--- a/searchcore/src/tests/proton/common/document_type_inspector/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test for document type inspector. Take a look at document_type_inspector_test.cpp for details.
-
diff --git a/searchcore/src/tests/proton/common/document_type_inspector/FILES b/searchcore/src/tests/proton/common/document_type_inspector/FILES
deleted file mode 100644
index 1a0b0b31a76..00000000000
--- a/searchcore/src/tests/proton/common/document_type_inspector/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_type_inspector_test.cpp
diff --git a/searchcore/src/tests/proton/common/hw_info_sampler/DESC b/searchcore/src/tests/proton/common/hw_info_sampler/DESC
deleted file mode 100644
index 82461c9b864..00000000000
--- a/searchcore/src/tests/proton/common/hw_info_sampler/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test for hw_info_sampler. Take a look at hw_info_sampler_test.cpp for details.
-
diff --git a/searchcore/src/tests/proton/common/hw_info_sampler/FILES b/searchcore/src/tests/proton/common/hw_info_sampler/FILES
deleted file mode 100644
index 164cdc82bce..00000000000
--- a/searchcore/src/tests/proton/common/hw_info_sampler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-hw_info_sampler_test.cpp
diff --git a/searchcore/src/tests/proton/common/state_reporter_utils/DESC b/searchcore/src/tests/proton/common/state_reporter_utils/DESC
deleted file mode 100644
index 7e4bc287738..00000000000
--- a/searchcore/src/tests/proton/common/state_reporter_utils/DESC
+++ /dev/null
@@ -1 +0,0 @@
-state reporter utils test. Take a look at state_reporter_utils_test.cpp for details.
diff --git a/searchcore/src/tests/proton/common/state_reporter_utils/FILES b/searchcore/src/tests/proton/common/state_reporter_utils/FILES
deleted file mode 100644
index cbea1ab5ad2..00000000000
--- a/searchcore/src/tests/proton/common/state_reporter_utils/FILES
+++ /dev/null
@@ -1 +0,0 @@
-state_reporter_utils_test.cpp
diff --git a/searchcore/src/tests/proton/create-test.sh b/searchcore/src/tests/proton/create-test.sh
deleted file mode 100644
index e210d609972..00000000000
--- a/searchcore/src/tests/proton/create-test.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-gen_ignore_file() {
- echo "generating '$1' ..."
- echo ".depend" > $1
- echo "Makefile" >> $1
- echo "${test}_test" >> $1
-}
-
-gen_project_file() {
- echo "generating '$1' ..."
- echo "APPLICATION ${test}_test" > $1
- echo "OBJS $test" >> $1
- echo "EXTERNALLIBS searchlib document fnet" >> $1
- echo "EXTERNALLIBS vespalib config vespalog" >> $1
- echo "" >> $1
- echo "CUSTOMMAKE" >> $1
- echo "test: ${test}_test" >> $1
- echo -e "\t\$(VALGRIND) ./${test}_test" >> $1
-}
-
-gen_source() {
- echo "generating '$1' ..."
- echo "#include <vespa/log/log.h>" > $1
- echo "LOG_SETUP(\"${test}_test\");" >> $1
- echo "#include <vespa/vespalib/testkit/testapp.h>" >> $1
- echo "" >> $1
- echo "// using namespace ;" >> $1
- echo "" >> $1
- echo "TEST_SETUP(Test);" >> $1
- echo "" >> $1
- echo "int" >> $1
- echo "Test::Main()" >> $1
- echo "{" >> $1
- echo " TEST_INIT(\"${test}_test\");" >> $1
- echo " TEST_DONE();" >> $1
- echo "}" >> $1
-}
-
-gen_desc() {
- echo "generating '$1' ..."
- echo "$test test. Take a look at $test.cpp for details." > $1
-}
-
-gen_file_list() {
- echo "generating '$1' ..."
- echo "$test.cpp" > $1
-}
-
-if [ $# -ne 1 ]; then
- echo "usage: $0 <name>"
- echo " name: name of the test to create"
- exit 1
-fi
-
-test=$1
-if [ -e $test ]; then
- echo "$test already present, don't want to mess it up..."
- exit 1
-fi
-
-echo "creating directory '$test' ..."
-mkdir -p $test || exit 1
-cd $test || exit 1
-test=`basename $test`
-
-gen_ignore_file .cvsignore
-gen_project_file fastos.project
-gen_source $test.cpp
-gen_desc DESC
-gen_file_list FILES
diff --git a/searchcore/src/tests/proton/docsummary/DESC b/searchcore/src/tests/proton/docsummary/DESC
deleted file mode 100644
index ba16d5453b6..00000000000
--- a/searchcore/src/tests/proton/docsummary/DESC
+++ /dev/null
@@ -1 +0,0 @@
-docsummary test. Take a look at docsummary.cpp for details.
diff --git a/searchcore/src/tests/proton/docsummary/FILES b/searchcore/src/tests/proton/docsummary/FILES
deleted file mode 100644
index e63fca83f2e..00000000000
--- a/searchcore/src/tests/proton/docsummary/FILES
+++ /dev/null
@@ -1 +0,0 @@
-docsummary.cpp
diff --git a/searchcore/src/tests/proton/document_iterator/FILES b/searchcore/src/tests/proton/document_iterator/FILES
deleted file mode 100644
index 351464d9f46..00000000000
--- a/searchcore/src/tests/proton/document_iterator/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_iterator_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/DESC b/searchcore/src/tests/proton/documentdb/DESC
deleted file mode 100644
index 0f8cbcb2eb0..00000000000
--- a/searchcore/src/tests/proton/documentdb/DESC
+++ /dev/null
@@ -1 +0,0 @@
-documentdb test. Take a look at documentdb_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/FILES b/searchcore/src/tests/proton/documentdb/FILES
deleted file mode 100644
index 50fef46855d..00000000000
--- a/searchcore/src/tests/proton/documentdb/FILES
+++ /dev/null
@@ -1 +0,0 @@
-documentdb_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/buckethandler/DESC b/searchcore/src/tests/proton/documentdb/buckethandler/DESC
deleted file mode 100644
index f844b837422..00000000000
--- a/searchcore/src/tests/proton/documentdb/buckethandler/DESC
+++ /dev/null
@@ -1 +0,0 @@
-buckethandler test. Take a look at buckethandler_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/buckethandler/FILES b/searchcore/src/tests/proton/documentdb/buckethandler/FILES
deleted file mode 100644
index df0589a342b..00000000000
--- a/searchcore/src/tests/proton/documentdb/buckethandler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-buckethandler_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/clusterstatehandler/DESC b/searchcore/src/tests/proton/documentdb/clusterstatehandler/DESC
deleted file mode 100644
index 5d5921dea9a..00000000000
--- a/searchcore/src/tests/proton/documentdb/clusterstatehandler/DESC
+++ /dev/null
@@ -1 +0,0 @@
-clusterstatehandler test. Take a look at clusterstatehandler_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/clusterstatehandler/FILES b/searchcore/src/tests/proton/documentdb/clusterstatehandler/FILES
deleted file mode 100644
index 92fc297c2a4..00000000000
--- a/searchcore/src/tests/proton/documentdb/clusterstatehandler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-clusterstatehandler_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/combiningfeedview/DESC b/searchcore/src/tests/proton/documentdb/combiningfeedview/DESC
deleted file mode 100644
index 9882151634a..00000000000
--- a/searchcore/src/tests/proton/documentdb/combiningfeedview/DESC
+++ /dev/null
@@ -1 +0,0 @@
-combiningfeedview test. Take a look at combiningfeedview_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/combiningfeedview/FILES b/searchcore/src/tests/proton/documentdb/combiningfeedview/FILES
deleted file mode 100644
index 791dc90442c..00000000000
--- a/searchcore/src/tests/proton/documentdb/combiningfeedview/FILES
+++ /dev/null
@@ -1 +0,0 @@
-combiningfeedview_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/configurer/DESC b/searchcore/src/tests/proton/documentdb/configurer/DESC
deleted file mode 100644
index 5d7765db8d2..00000000000
--- a/searchcore/src/tests/proton/documentdb/configurer/DESC
+++ /dev/null
@@ -1 +0,0 @@
-configurer test. Take a look at configurer_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/configurer/FILES b/searchcore/src/tests/proton/documentdb/configurer/FILES
deleted file mode 100644
index a7ff508edc0..00000000000
--- a/searchcore/src/tests/proton/documentdb/configurer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-configurer_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/document_scan_iterator/DESC b/searchcore/src/tests/proton/documentdb/document_scan_iterator/DESC
deleted file mode 100644
index b5965bc2f2d..00000000000
--- a/searchcore/src/tests/proton/documentdb/document_scan_iterator/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test for document scan iterator. Take a look at document_scan_iterator_test.cpp for details.
-
diff --git a/searchcore/src/tests/proton/documentdb/document_scan_iterator/FILES b/searchcore/src/tests/proton/documentdb/document_scan_iterator/FILES
deleted file mode 100644
index f1b6d86a774..00000000000
--- a/searchcore/src/tests/proton/documentdb/document_scan_iterator/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_scan_iterator_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/document_subdbs/DESC b/searchcore/src/tests/proton/documentdb/document_subdbs/DESC
deleted file mode 100644
index 22718579d4c..00000000000
--- a/searchcore/src/tests/proton/documentdb/document_subdbs/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test for document sub db implementations. Take a look at document_subdbs_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/document_subdbs/FILES b/searchcore/src/tests/proton/documentdb/document_subdbs/FILES
deleted file mode 100644
index 3d5222f3212..00000000000
--- a/searchcore/src/tests/proton/documentdb/document_subdbs/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_subdbs_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/documentbucketmover/DESC b/searchcore/src/tests/proton/documentdb/documentbucketmover/DESC
deleted file mode 100644
index 7746f5e2222..00000000000
--- a/searchcore/src/tests/proton/documentdb/documentbucketmover/DESC
+++ /dev/null
@@ -1 +0,0 @@
-documentbucketmover test. Take a look at documentbucketmover_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/documentbucketmover/FILES b/searchcore/src/tests/proton/documentdb/documentbucketmover/FILES
deleted file mode 100644
index b035525acff..00000000000
--- a/searchcore/src/tests/proton/documentdb/documentbucketmover/FILES
+++ /dev/null
@@ -1 +0,0 @@
-documentbucketmover_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/documentdbconfig/DESC b/searchcore/src/tests/proton/documentdb/documentdbconfig/DESC
deleted file mode 100644
index e2893dff557..00000000000
--- a/searchcore/src/tests/proton/documentdb/documentdbconfig/DESC
+++ /dev/null
@@ -1 +0,0 @@
-DocumentDBConfig test. Take a look at documentdbconfig_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/documentdbconfig/FILES b/searchcore/src/tests/proton/documentdb/documentdbconfig/FILES
deleted file mode 100644
index 5298158fdbd..00000000000
--- a/searchcore/src/tests/proton/documentdb/documentdbconfig/FILES
+++ /dev/null
@@ -1 +0,0 @@
-documentdbconfig_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/documentdbconfigscout/DESC b/searchcore/src/tests/proton/documentdb/documentdbconfigscout/DESC
deleted file mode 100644
index 6585b4bc2b2..00000000000
--- a/searchcore/src/tests/proton/documentdb/documentdbconfigscout/DESC
+++ /dev/null
@@ -1 +0,0 @@
-DocumentDBConfigScout test. Take a look at documentdbconfigscout_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/documentdbconfigscout/FILES b/searchcore/src/tests/proton/documentdb/documentdbconfigscout/FILES
deleted file mode 100644
index 38b76884ae0..00000000000
--- a/searchcore/src/tests/proton/documentdb/documentdbconfigscout/FILES
+++ /dev/null
@@ -1 +0,0 @@
-documentdbconfigscout_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/feedhandler/DESC b/searchcore/src/tests/proton/documentdb/feedhandler/DESC
deleted file mode 100644
index c29d8c9a6e9..00000000000
--- a/searchcore/src/tests/proton/documentdb/feedhandler/DESC
+++ /dev/null
@@ -1 +0,0 @@
-feedhandler test. Take a look at feedhandler_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/feedhandler/FILES b/searchcore/src/tests/proton/documentdb/feedhandler/FILES
deleted file mode 100644
index 483ca5f0fcd..00000000000
--- a/searchcore/src/tests/proton/documentdb/feedhandler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-feedhandler_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/feedview/DESC b/searchcore/src/tests/proton/documentdb/feedview/DESC
deleted file mode 100644
index 4c35f3d2a61..00000000000
--- a/searchcore/src/tests/proton/documentdb/feedview/DESC
+++ /dev/null
@@ -1 +0,0 @@
-feedview test. Take a look at feedview_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/feedview/FILES b/searchcore/src/tests/proton/documentdb/feedview/FILES
deleted file mode 100644
index 3f8ae0c6889..00000000000
--- a/searchcore/src/tests/proton/documentdb/feedview/FILES
+++ /dev/null
@@ -1 +0,0 @@
-feedview_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/fileconfigmanager/DESC b/searchcore/src/tests/proton/documentdb/fileconfigmanager/DESC
deleted file mode 100644
index ab2f0ed8b46..00000000000
--- a/searchcore/src/tests/proton/documentdb/fileconfigmanager/DESC
+++ /dev/null
@@ -1 +0,0 @@
-fileconfigmanager test. Take a look at fileconfigmanager.cpp for details.
diff --git a/searchcore/src/tests/proton/documentdb/fileconfigmanager/FILES b/searchcore/src/tests/proton/documentdb/fileconfigmanager/FILES
deleted file mode 100644
index 842440c7182..00000000000
--- a/searchcore/src/tests/proton/documentdb/fileconfigmanager/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fileconfigmanager_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/DESC b/searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/DESC
deleted file mode 100644
index 4ba7520eab8..00000000000
--- a/searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-job tracked maintenance job test. Take a look at job_tracked_maintenance_job_test.cpp for details.
-
diff --git a/searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/FILES b/searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/FILES
deleted file mode 100644
index a871a1fa8aa..00000000000
--- a/searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/FILES
+++ /dev/null
@@ -1 +0,0 @@
-job_tracked_maintenance_job_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/lid_space_compaction/DESC b/searchcore/src/tests/proton/documentdb/lid_space_compaction/DESC
deleted file mode 100644
index b361d232d13..00000000000
--- a/searchcore/src/tests/proton/documentdb/lid_space_compaction/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test for lid space compaction. Take a look at lid_space_compaction_test.cpp for details.
-
diff --git a/searchcore/src/tests/proton/documentdb/lid_space_compaction/FILES b/searchcore/src/tests/proton/documentdb/lid_space_compaction/FILES
deleted file mode 100644
index 48fa9ef87c6..00000000000
--- a/searchcore/src/tests/proton/documentdb/lid_space_compaction/FILES
+++ /dev/null
@@ -1 +0,0 @@
-lid_space_compaction_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/DESC b/searchcore/src/tests/proton/documentdb/maintenancecontroller/DESC
deleted file mode 100644
index ad4e910a6f1..00000000000
--- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-maintenance controller test. Take a look at maintenancecontroller_test.cpp
-for details.
diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/FILES b/searchcore/src/tests/proton/documentdb/maintenancecontroller/FILES
deleted file mode 100644
index 4bd439640f1..00000000000
--- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-maintenancecontroller_test.cpp
-frozenbucketsmap_test.cpp
diff --git a/searchcore/src/tests/proton/documentdb/move_operation_limiter/FILES b/searchcore/src/tests/proton/documentdb/move_operation_limiter/FILES
deleted file mode 100644
index 833ddbf7789..00000000000
--- a/searchcore/src/tests/proton/documentdb/move_operation_limiter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-move_operation_limiter_test.cpp
diff --git a/searchcore/src/tests/proton/documentmetastore/DESC b/searchcore/src/tests/proton/documentmetastore/DESC
deleted file mode 100644
index 7a7bdaae267..00000000000
--- a/searchcore/src/tests/proton/documentmetastore/DESC
+++ /dev/null
@@ -1 +0,0 @@
-documentmetastore test. Take a look at documentmetastore_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentmetastore/FILES b/searchcore/src/tests/proton/documentmetastore/FILES
deleted file mode 100644
index 29d56a32b24..00000000000
--- a/searchcore/src/tests/proton/documentmetastore/FILES
+++ /dev/null
@@ -1 +0,0 @@
-documentmetastore_test.cpp
diff --git a/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/DESC b/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/DESC
deleted file mode 100644
index 73e755c73c6..00000000000
--- a/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/DESC
+++ /dev/null
@@ -1 +0,0 @@
-LID reuse delayer test. Take a look at lidreusedelayer_test.cpp for details.
diff --git a/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/FILES b/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/FILES
deleted file mode 100644
index 4965f6577f6..00000000000
--- a/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-lidreusedelayer_test.cpp
diff --git a/searchcore/src/tests/proton/feed_and_search/DESC b/searchcore/src/tests/proton/feed_and_search/DESC
deleted file mode 100644
index 0ae466eb2c9..00000000000
--- a/searchcore/src/tests/proton/feed_and_search/DESC
+++ /dev/null
@@ -1 +0,0 @@
-feed_and_search test. Take a look at feed_and_search.cpp for details.
diff --git a/searchcore/src/tests/proton/feed_and_search/FILES b/searchcore/src/tests/proton/feed_and_search/FILES
deleted file mode 100644
index cd160110672..00000000000
--- a/searchcore/src/tests/proton/feed_and_search/FILES
+++ /dev/null
@@ -1 +0,0 @@
-feed_and_search.cpp
diff --git a/searchcore/src/tests/proton/feedtoken/DESC b/searchcore/src/tests/proton/feedtoken/DESC
deleted file mode 100644
index 6fd2921a8c4..00000000000
--- a/searchcore/src/tests/proton/feedtoken/DESC
+++ /dev/null
@@ -1 +0,0 @@
-feedtoken test. Take a look at feedtoken.cpp for details.
diff --git a/searchcore/src/tests/proton/feedtoken/FILES b/searchcore/src/tests/proton/feedtoken/FILES
deleted file mode 100644
index 052aab3d388..00000000000
--- a/searchcore/src/tests/proton/feedtoken/FILES
+++ /dev/null
@@ -1 +0,0 @@
-feedtoken.cpp
diff --git a/searchcore/src/tests/proton/flushengine/DESC b/searchcore/src/tests/proton/flushengine/DESC
deleted file mode 100644
index 87a9f388463..00000000000
--- a/searchcore/src/tests/proton/flushengine/DESC
+++ /dev/null
@@ -1 +0,0 @@
-flushengine test. Take a look at flushengine.cpp for details.
diff --git a/searchcore/src/tests/proton/flushengine/FILES b/searchcore/src/tests/proton/flushengine/FILES
deleted file mode 100644
index 5156cba47e7..00000000000
--- a/searchcore/src/tests/proton/flushengine/FILES
+++ /dev/null
@@ -1 +0,0 @@
-flushengine.cpp
diff --git a/searchcore/src/tests/proton/flushengine/prepare_restart_flush_strategy/DESC b/searchcore/src/tests/proton/flushengine/prepare_restart_flush_strategy/DESC
deleted file mode 100644
index 77474a51fbb..00000000000
--- a/searchcore/src/tests/proton/flushengine/prepare_restart_flush_strategy/DESC
+++ /dev/null
@@ -1 +0,0 @@
-prepare_restart_flush_strategy test. Take a look at prepare_restart_flush_strategy_test.cpp for details.
diff --git a/searchcore/src/tests/proton/flushengine/prepare_restart_flush_strategy/FILES b/searchcore/src/tests/proton/flushengine/prepare_restart_flush_strategy/FILES
deleted file mode 100644
index 35ad6c54f3c..00000000000
--- a/searchcore/src/tests/proton/flushengine/prepare_restart_flush_strategy/FILES
+++ /dev/null
@@ -1 +0,0 @@
-prepare_restart_flush_strategy_test.cpp
diff --git a/searchcore/src/tests/proton/flushengine/shrink_lid_space_flush_target/DESC b/searchcore/src/tests/proton/flushengine/shrink_lid_space_flush_target/DESC
deleted file mode 100644
index e8cb3013c29..00000000000
--- a/searchcore/src/tests/proton/flushengine/shrink_lid_space_flush_target/DESC
+++ /dev/null
@@ -1 +0,0 @@
-ShrinkLidSpaceFlushTarget test. Take a look at shrink_lid_space_flush_target_test.cpp for details.
diff --git a/searchcore/src/tests/proton/flushengine/shrink_lid_space_flush_target/FILES b/searchcore/src/tests/proton/flushengine/shrink_lid_space_flush_target/FILES
deleted file mode 100644
index 54ff425acdd..00000000000
--- a/searchcore/src/tests/proton/flushengine/shrink_lid_space_flush_target/FILES
+++ /dev/null
@@ -1 +0,0 @@
-shrink_lid_space_flush_target_test.cpp
diff --git a/searchcore/src/tests/proton/index/index_writer/DESC b/searchcore/src/tests/proton/index/index_writer/DESC
deleted file mode 100644
index ea5596d3039..00000000000
--- a/searchcore/src/tests/proton/index/index_writer/DESC
+++ /dev/null
@@ -1 +0,0 @@
-index writer test. Take a look at index_writer_test.cpp for details.
diff --git a/searchcore/src/tests/proton/index/index_writer/FILES b/searchcore/src/tests/proton/index/index_writer/FILES
deleted file mode 100644
index 3b26c7f84ad..00000000000
--- a/searchcore/src/tests/proton/index/index_writer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-index_writer_test.cpp
diff --git a/searchcore/src/tests/proton/initializer/DESC b/searchcore/src/tests/proton/initializer/DESC
deleted file mode 100644
index be2743a181e..00000000000
--- a/searchcore/src/tests/proton/initializer/DESC
+++ /dev/null
@@ -1 +0,0 @@
-TaskRunner test. Take a look at task_runner_test.cpp for details.
diff --git a/searchcore/src/tests/proton/initializer/FILES b/searchcore/src/tests/proton/initializer/FILES
deleted file mode 100644
index bbbbe1c2d86..00000000000
--- a/searchcore/src/tests/proton/initializer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-task_runner_test.cpp
diff --git a/searchcore/src/tests/proton/matchengine/DESC b/searchcore/src/tests/proton/matchengine/DESC
deleted file mode 100644
index 1530502e2de..00000000000
--- a/searchcore/src/tests/proton/matchengine/DESC
+++ /dev/null
@@ -1 +0,0 @@
-matchengine test. Take a look at matchengine.cpp for details.
diff --git a/searchcore/src/tests/proton/matchengine/FILES b/searchcore/src/tests/proton/matchengine/FILES
deleted file mode 100644
index 91961877ee2..00000000000
--- a/searchcore/src/tests/proton/matchengine/FILES
+++ /dev/null
@@ -1 +0,0 @@
-matchengine.cpp
diff --git a/searchcore/src/tests/proton/matching/DESC b/searchcore/src/tests/proton/matching/DESC
deleted file mode 100644
index 435b17f333e..00000000000
--- a/searchcore/src/tests/proton/matching/DESC
+++ /dev/null
@@ -1 +0,0 @@
-matching test. Take a look at matching.cpp for details.
diff --git a/searchcore/src/tests/proton/matching/FILES b/searchcore/src/tests/proton/matching/FILES
deleted file mode 100644
index 0213f77d899..00000000000
--- a/searchcore/src/tests/proton/matching/FILES
+++ /dev/null
@@ -1 +0,0 @@
-matching.cpp
diff --git a/searchcore/src/tests/proton/matching/match_loop_communicator/FILES b/searchcore/src/tests/proton/matching/match_loop_communicator/FILES
deleted file mode 100644
index d2f1096aaa3..00000000000
--- a/searchcore/src/tests/proton/matching/match_loop_communicator/FILES
+++ /dev/null
@@ -1 +0,0 @@
-match_loop_communicator_test.cpp
diff --git a/searchcore/src/tests/proton/matching/match_phase_limiter/FILES b/searchcore/src/tests/proton/matching/match_phase_limiter/FILES
deleted file mode 100644
index 776925a0d69..00000000000
--- a/searchcore/src/tests/proton/matching/match_phase_limiter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-match_phase_limiter_test.cpp
diff --git a/searchcore/src/tests/proton/matching/partial_result/FILES b/searchcore/src/tests/proton/matching/partial_result/FILES
deleted file mode 100644
index cb7cdbd3bb6..00000000000
--- a/searchcore/src/tests/proton/matching/partial_result/FILES
+++ /dev/null
@@ -1 +0,0 @@
-partial_result_test.cpp
diff --git a/searchcore/src/tests/proton/metrics/documentdb_job_trackers/DESC b/searchcore/src/tests/proton/metrics/documentdb_job_trackers/DESC
deleted file mode 100644
index ccd322886ea..00000000000
--- a/searchcore/src/tests/proton/metrics/documentdb_job_trackers/DESC
+++ /dev/null
@@ -1 +0,0 @@
-documentdb job trackers test. Take a look at documentdb_job_trackers_test.cpp for details.
diff --git a/searchcore/src/tests/proton/metrics/documentdb_job_trackers/FILES b/searchcore/src/tests/proton/metrics/documentdb_job_trackers/FILES
deleted file mode 100644
index a63504feca2..00000000000
--- a/searchcore/src/tests/proton/metrics/documentdb_job_trackers/FILES
+++ /dev/null
@@ -1 +0,0 @@
-documentdb_job_trackers_test.cpp
diff --git a/searchcore/src/tests/proton/metrics/job_load_sampler/DESC b/searchcore/src/tests/proton/metrics/job_load_sampler/DESC
deleted file mode 100644
index 966bcdf83f6..00000000000
--- a/searchcore/src/tests/proton/metrics/job_load_sampler/DESC
+++ /dev/null
@@ -1 +0,0 @@
-job load sampler test. Take a look at job_load_sampler_test.cpp for details.
diff --git a/searchcore/src/tests/proton/metrics/job_load_sampler/FILES b/searchcore/src/tests/proton/metrics/job_load_sampler/FILES
deleted file mode 100644
index 1112ae6c5da..00000000000
--- a/searchcore/src/tests/proton/metrics/job_load_sampler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-job_load_sampler_test.cpp
diff --git a/searchcore/src/tests/proton/metrics/job_tracked_flush/DESC b/searchcore/src/tests/proton/metrics/job_tracked_flush/DESC
deleted file mode 100644
index b62528ff8b4..00000000000
--- a/searchcore/src/tests/proton/metrics/job_tracked_flush/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-job tracked flush target/task test. Take a look at job_tracked_flush_test.cpp for details.
-
diff --git a/searchcore/src/tests/proton/metrics/job_tracked_flush/FILES b/searchcore/src/tests/proton/metrics/job_tracked_flush/FILES
deleted file mode 100644
index 09f32789c94..00000000000
--- a/searchcore/src/tests/proton/metrics/job_tracked_flush/FILES
+++ /dev/null
@@ -1 +0,0 @@
-job_tracked_flush_test.cpp
diff --git a/searchcore/src/tests/proton/metrics/metrics_engine/DESC b/searchcore/src/tests/proton/metrics/metrics_engine/DESC
deleted file mode 100644
index 2efe31d45d3..00000000000
--- a/searchcore/src/tests/proton/metrics/metrics_engine/DESC
+++ /dev/null
@@ -1 +0,0 @@
-metrics engine test. Take a look at metrics_engine_test.cpp for details.
diff --git a/searchcore/src/tests/proton/metrics/metrics_engine/FILES b/searchcore/src/tests/proton/metrics/metrics_engine/FILES
deleted file mode 100644
index ac033a53070..00000000000
--- a/searchcore/src/tests/proton/metrics/metrics_engine/FILES
+++ /dev/null
@@ -1 +0,0 @@
-metrics_engine_test.cpp
diff --git a/searchcore/src/tests/proton/persistenceconformance/DESC b/searchcore/src/tests/proton/persistenceconformance/DESC
deleted file mode 100644
index 98392d5a316..00000000000
--- a/searchcore/src/tests/proton/persistenceconformance/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Persistence provider conformance test for proton integration. Take a look at persistenceconformance_test.cpp for details.
diff --git a/searchcore/src/tests/proton/persistenceconformance/FILES b/searchcore/src/tests/proton/persistenceconformance/FILES
deleted file mode 100644
index 6912ecd1d9b..00000000000
--- a/searchcore/src/tests/proton/persistenceconformance/FILES
+++ /dev/null
@@ -1 +0,0 @@
-persistenceconformance_test.cpp
diff --git a/searchcore/src/tests/proton/persistenceengine/DESC b/searchcore/src/tests/proton/persistenceengine/DESC
deleted file mode 100644
index ec363711b48..00000000000
--- a/searchcore/src/tests/proton/persistenceengine/DESC
+++ /dev/null
@@ -1 +0,0 @@
-persistenceengine test. Take a look at persistenceengine_test.cpp for details.
diff --git a/searchcore/src/tests/proton/persistenceengine/FILES b/searchcore/src/tests/proton/persistenceengine/FILES
deleted file mode 100644
index 12d47ca9632..00000000000
--- a/searchcore/src/tests/proton/persistenceengine/FILES
+++ /dev/null
@@ -1 +0,0 @@
-persistenceengine_test.cpp
diff --git a/searchcore/src/tests/proton/reference/document_db_reference/FILES b/searchcore/src/tests/proton/reference/document_db_reference/FILES
deleted file mode 100644
index af035b253b8..00000000000
--- a/searchcore/src/tests/proton/reference/document_db_reference/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_db_reference_test.cpp
diff --git a/searchcore/src/tests/proton/reference/document_db_reference_registry/DESC b/searchcore/src/tests/proton/reference/document_db_reference_registry/DESC
deleted file mode 100644
index a71a62917f1..00000000000
--- a/searchcore/src/tests/proton/reference/document_db_reference_registry/DESC
+++ /dev/null
@@ -1 +0,0 @@
-document_db_reference_registry test. Take a look at document_db_reference_registry_test.cpp for details.
diff --git a/searchcore/src/tests/proton/reference/document_db_reference_registry/FILES b/searchcore/src/tests/proton/reference/document_db_reference_registry/FILES
deleted file mode 100644
index 3a00650715a..00000000000
--- a/searchcore/src/tests/proton/reference/document_db_reference_registry/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_db_reference_registry_test.cpp
diff --git a/searchcore/src/tests/proton/reference/document_db_reference_resolver/DESC b/searchcore/src/tests/proton/reference/document_db_reference_resolver/DESC
deleted file mode 100644
index 3a8fe966966..00000000000
--- a/searchcore/src/tests/proton/reference/document_db_reference_resolver/DESC
+++ /dev/null
@@ -1 +0,0 @@
-document_db_reference_resolver test. Take a look at document_db_reference_resolver_test.cpp for details.
diff --git a/searchcore/src/tests/proton/reference/document_db_reference_resolver/FILES b/searchcore/src/tests/proton/reference/document_db_reference_resolver/FILES
deleted file mode 100644
index 15233d66c94..00000000000
--- a/searchcore/src/tests/proton/reference/document_db_reference_resolver/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_db_reference_resolver_test.cpp
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/DESC b/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/DESC
deleted file mode 100644
index 362de49669b..00000000000
--- a/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/DESC
+++ /dev/null
@@ -1 +0,0 @@
-gid_to_lid_change_handler test. Take a look at gid_to_lid_change_handler_test.cpp for details.
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/FILES b/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/FILES
deleted file mode 100644
index 451157507fd..00000000000
--- a/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-gid_to_lid_change_handler_test.cpp
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/DESC b/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/DESC
deleted file mode 100644
index ab26dd60a1b..00000000000
--- a/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/DESC
+++ /dev/null
@@ -1 +0,0 @@
-gid_to_lid_change_listener test. Take a look at gid_to_lid_change_listener_test.cpp for details.
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/FILES b/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/FILES
deleted file mode 100644
index ad1848502a5..00000000000
--- a/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/FILES
+++ /dev/null
@@ -1 +0,0 @@
-gid_to_lid_change_listener_test.cpp
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_change_registrator/DESC b/searchcore/src/tests/proton/reference/gid_to_lid_change_registrator/DESC
deleted file mode 100644
index a5f481dd092..00000000000
--- a/searchcore/src/tests/proton/reference/gid_to_lid_change_registrator/DESC
+++ /dev/null
@@ -1 +0,0 @@
-gid_to_lid_change_registrator test. Take a look at gid_to_lid_change_registrator_test.cpp for details.
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_change_registrator/FILES b/searchcore/src/tests/proton/reference/gid_to_lid_change_registrator/FILES
deleted file mode 100644
index 60e12f3f836..00000000000
--- a/searchcore/src/tests/proton/reference/gid_to_lid_change_registrator/FILES
+++ /dev/null
@@ -1 +0,0 @@
-gid_to_lid_change_registrator_test.cpp
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_mapper/DESC b/searchcore/src/tests/proton/reference/gid_to_lid_mapper/DESC
deleted file mode 100644
index f251a0c3ac2..00000000000
--- a/searchcore/src/tests/proton/reference/gid_to_lid_mapper/DESC
+++ /dev/null
@@ -1 +0,0 @@
-gid_to_lid_mapper test. Take a look at gid_to_lid_mapper_test.cpp for details.
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_mapper/FILES b/searchcore/src/tests/proton/reference/gid_to_lid_mapper/FILES
deleted file mode 100644
index 13c38a92974..00000000000
--- a/searchcore/src/tests/proton/reference/gid_to_lid_mapper/FILES
+++ /dev/null
@@ -1 +0,0 @@
-gid_to_lid_mapper_test.cpp
diff --git a/searchcore/src/tests/proton/reprocessing/attribute_reprocessing_initializer/DESC b/searchcore/src/tests/proton/reprocessing/attribute_reprocessing_initializer/DESC
deleted file mode 100644
index 2ae1d0c8164..00000000000
--- a/searchcore/src/tests/proton/reprocessing/attribute_reprocessing_initializer/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test for attribute reprocessing initializer. Take a look at attribute_reprocessing_initializer_test.cpp for details.
-
diff --git a/searchcore/src/tests/proton/reprocessing/attribute_reprocessing_initializer/FILES b/searchcore/src/tests/proton/reprocessing/attribute_reprocessing_initializer/FILES
deleted file mode 100644
index 6c9084f176d..00000000000
--- a/searchcore/src/tests/proton/reprocessing/attribute_reprocessing_initializer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attribute_reprocessing_initializer_test.cpp
diff --git a/searchcore/src/tests/proton/reprocessing/document_reprocessing_handler/DESC b/searchcore/src/tests/proton/reprocessing/document_reprocessing_handler/DESC
deleted file mode 100644
index 663b2304d37..00000000000
--- a/searchcore/src/tests/proton/reprocessing/document_reprocessing_handler/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test for document reprocessing handler. Take a look at document_reprocessing_handler_test.cpp for details.
-
diff --git a/searchcore/src/tests/proton/reprocessing/document_reprocessing_handler/FILES b/searchcore/src/tests/proton/reprocessing/document_reprocessing_handler/FILES
deleted file mode 100644
index 2301fc01844..00000000000
--- a/searchcore/src/tests/proton/reprocessing/document_reprocessing_handler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_reprocessing_handler_test.cpp
diff --git a/searchcore/src/tests/proton/reprocessing/reprocessing_runner/DESC b/searchcore/src/tests/proton/reprocessing/reprocessing_runner/DESC
deleted file mode 100644
index ffa0db7ae9e..00000000000
--- a/searchcore/src/tests/proton/reprocessing/reprocessing_runner/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test reprocessing runner.
diff --git a/searchcore/src/tests/proton/reprocessing/reprocessing_runner/FILES b/searchcore/src/tests/proton/reprocessing/reprocessing_runner/FILES
deleted file mode 100644
index 091769d58cb..00000000000
--- a/searchcore/src/tests/proton/reprocessing/reprocessing_runner/FILES
+++ /dev/null
@@ -1 +0,0 @@
-reprocessing_runner_test.cpp
diff --git a/searchcore/src/tests/proton/server/disk_mem_usage_filter/DESC b/searchcore/src/tests/proton/server/disk_mem_usage_filter/DESC
deleted file mode 100644
index fca9e3b7656..00000000000
--- a/searchcore/src/tests/proton/server/disk_mem_usage_filter/DESC
+++ /dev/null
@@ -1 +0,0 @@
-DiskMemUsageFilter test. Take a look at disk_mem_usage_filter_test.cpp for details.
diff --git a/searchcore/src/tests/proton/server/disk_mem_usage_filter/FILES b/searchcore/src/tests/proton/server/disk_mem_usage_filter/FILES
deleted file mode 100644
index b6cdfc4bffc..00000000000
--- a/searchcore/src/tests/proton/server/disk_mem_usage_filter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-disk_mem_usage_filter_test.cpp
diff --git a/searchcore/src/tests/proton/server/health_adapter/FILES b/searchcore/src/tests/proton/server/health_adapter/FILES
deleted file mode 100644
index 6faa8f6155f..00000000000
--- a/searchcore/src/tests/proton/server/health_adapter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-health_adapter_test.cpp
diff --git a/searchcore/src/tests/proton/server/memory_flush_config_updater/DESC b/searchcore/src/tests/proton/server/memory_flush_config_updater/DESC
deleted file mode 100644
index b183c571bcc..00000000000
--- a/searchcore/src/tests/proton/server/memory_flush_config_updater/DESC
+++ /dev/null
@@ -1 +0,0 @@
-memory_flush_config_updater test. Take a look at memory_flush_config_updater_test.cpp for details.
diff --git a/searchcore/src/tests/proton/server/memory_flush_config_updater/FILES b/searchcore/src/tests/proton/server/memory_flush_config_updater/FILES
deleted file mode 100644
index c36fcd27415..00000000000
--- a/searchcore/src/tests/proton/server/memory_flush_config_updater/FILES
+++ /dev/null
@@ -1 +0,0 @@
-memory_flush_config_updater_test.cpp
diff --git a/searchcore/src/tests/proton/server/memoryflush/DESC b/searchcore/src/tests/proton/server/memoryflush/DESC
deleted file mode 100644
index 69bfba597c4..00000000000
--- a/searchcore/src/tests/proton/server/memoryflush/DESC
+++ /dev/null
@@ -1 +0,0 @@
-memoryflush test. Take a look at memoryflush_test.cpp for details.
diff --git a/searchcore/src/tests/proton/server/memoryflush/FILES b/searchcore/src/tests/proton/server/memoryflush/FILES
deleted file mode 100644
index 94ca0c97eb0..00000000000
--- a/searchcore/src/tests/proton/server/memoryflush/FILES
+++ /dev/null
@@ -1 +0,0 @@
-memoryflush_test.cpp
diff --git a/searchcore/src/tests/proton/server/visibility_handler/DESC b/searchcore/src/tests/proton/server/visibility_handler/DESC
deleted file mode 100644
index 588cd8b923e..00000000000
--- a/searchcore/src/tests/proton/server/visibility_handler/DESC
+++ /dev/null
@@ -1 +0,0 @@
-visibility_handler test. Take a look at visibility_handler_test.cpp for details.
diff --git a/searchcore/src/tests/proton/server/visibility_handler/FILES b/searchcore/src/tests/proton/server/visibility_handler/FILES
deleted file mode 100644
index 8dea2c9d408..00000000000
--- a/searchcore/src/tests/proton/server/visibility_handler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-visibility_handler_test.cpp
diff --git a/searchcore/src/tests/proton/statusreport/DESC b/searchcore/src/tests/proton/statusreport/DESC
deleted file mode 100644
index 36c1c49cc80..00000000000
--- a/searchcore/src/tests/proton/statusreport/DESC
+++ /dev/null
@@ -1 +0,0 @@
-statusreport test. Take a look at statusreport.cpp for details.
diff --git a/searchcore/src/tests/proton/statusreport/FILES b/searchcore/src/tests/proton/statusreport/FILES
deleted file mode 100644
index fe27097df03..00000000000
--- a/searchcore/src/tests/proton/statusreport/FILES
+++ /dev/null
@@ -1 +0,0 @@
-statusreport.cpp
diff --git a/searchcore/src/tests/proton/summaryengine/DESC b/searchcore/src/tests/proton/summaryengine/DESC
deleted file mode 100644
index be0687ecb07..00000000000
--- a/searchcore/src/tests/proton/summaryengine/DESC
+++ /dev/null
@@ -1 +0,0 @@
-summaryengine test. Take a look at summaryengine.cpp for details.
diff --git a/searchcore/src/tests/proton/summaryengine/FILES b/searchcore/src/tests/proton/summaryengine/FILES
deleted file mode 100644
index cef9a6e88bf..00000000000
--- a/searchcore/src/tests/proton/summaryengine/FILES
+++ /dev/null
@@ -1 +0,0 @@
-summaryengine.cpp
diff --git a/searchcore/src/tests/proton/verify_ranksetup/DESC b/searchcore/src/tests/proton/verify_ranksetup/DESC
deleted file mode 100644
index 700e2b1c2f9..00000000000
--- a/searchcore/src/tests/proton/verify_ranksetup/DESC
+++ /dev/null
@@ -1 +0,0 @@
-verify_ranksetup test. Take a look at verify_ranksetup.cpp for details.
diff --git a/searchcore/src/tests/proton/verify_ranksetup/FILES b/searchcore/src/tests/proton/verify_ranksetup/FILES
deleted file mode 100644
index 9c4a2ef3776..00000000000
--- a/searchcore/src/tests/proton/verify_ranksetup/FILES
+++ /dev/null
@@ -1 +0,0 @@
-verify_ranksetup.cpp
diff --git a/searchcorespi/src/tests/plugin/DESC b/searchcorespi/src/tests/plugin/DESC
deleted file mode 100644
index 80d66100e85..00000000000
--- a/searchcorespi/src/tests/plugin/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test of factory plugin interface.
diff --git a/searchcorespi/src/tests/plugin/FILES b/searchcorespi/src/tests/plugin/FILES
deleted file mode 100644
index 1b658927feb..00000000000
--- a/searchcorespi/src/tests/plugin/FILES
+++ /dev/null
@@ -1 +0,0 @@
-plugin_test.cpp
diff --git a/searchlib/src/tests/aggregator/DESC b/searchlib/src/tests/aggregator/DESC
deleted file mode 100644
index 74bbb4a99fe..00000000000
--- a/searchlib/src/tests/aggregator/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a test of the aggregator manager interface.
diff --git a/searchlib/src/tests/aggregator/FILES b/searchlib/src/tests/aggregator/FILES
deleted file mode 100644
index 2d49a798a26..00000000000
--- a/searchlib/src/tests/aggregator/FILES
+++ /dev/null
@@ -1 +0,0 @@
-aggregator.cpp
diff --git a/searchlib/src/tests/alignment/DESC b/searchlib/src/tests/alignment/DESC
deleted file mode 100644
index a37dbbc1c7a..00000000000
--- a/searchlib/src/tests/alignment/DESC
+++ /dev/null
@@ -1 +0,0 @@
-alignment test. Take a look at alignment.cpp for details.
diff --git a/searchlib/src/tests/alignment/FILES b/searchlib/src/tests/alignment/FILES
deleted file mode 100644
index 067828da485..00000000000
--- a/searchlib/src/tests/alignment/FILES
+++ /dev/null
@@ -1 +0,0 @@
-alignment.cpp
diff --git a/searchlib/src/tests/attribute/DESC b/searchlib/src/tests/attribute/DESC
deleted file mode 100644
index 6a9215b1a3b..00000000000
--- a/searchlib/src/tests/attribute/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for attribute use.
diff --git a/searchlib/src/tests/attribute/FILES b/searchlib/src/tests/attribute/FILES
deleted file mode 100644
index b742644b750..00000000000
--- a/searchlib/src/tests/attribute/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-attribute.cpp
-attributebenchmark.cpp
diff --git a/searchlib/src/tests/attribute/compaction/DESC b/searchlib/src/tests/attribute/compaction/DESC
deleted file mode 100644
index dfed48a02fb..00000000000
--- a/searchlib/src/tests/attribute/compaction/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for attribute vector compaction.
diff --git a/searchlib/src/tests/attribute/compaction/FILES b/searchlib/src/tests/attribute/compaction/FILES
deleted file mode 100644
index 7dbc2016f5c..00000000000
--- a/searchlib/src/tests/attribute/compaction/FILES
+++ /dev/null
@@ -1 +0,0 @@
-atttribute_compaction_test.cpp
diff --git a/searchlib/src/tests/attribute/comparator/DESC b/searchlib/src/tests/attribute/comparator/DESC
deleted file mode 100644
index 6b3ba01c89b..00000000000
--- a/searchlib/src/tests/attribute/comparator/DESC
+++ /dev/null
@@ -1 +0,0 @@
-comparator test. Take a look at comparator_test.cpp for details.
diff --git a/searchlib/src/tests/attribute/comparator/FILES b/searchlib/src/tests/attribute/comparator/FILES
deleted file mode 100644
index b4c23c09022..00000000000
--- a/searchlib/src/tests/attribute/comparator/FILES
+++ /dev/null
@@ -1 +0,0 @@
-comparator_test.cpp
diff --git a/searchlib/src/tests/attribute/document_weight_iterator/FILES b/searchlib/src/tests/attribute/document_weight_iterator/FILES
deleted file mode 100644
index 9bb94dc8770..00000000000
--- a/searchlib/src/tests/attribute/document_weight_iterator/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_weight_iterator_test.cpp
diff --git a/searchlib/src/tests/attribute/enumstore/DESC b/searchlib/src/tests/attribute/enumstore/DESC
deleted file mode 100644
index 514c9a47caf..00000000000
--- a/searchlib/src/tests/attribute/enumstore/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a test for the EnumStore class.
diff --git a/searchlib/src/tests/attribute/enumstore/FILES b/searchlib/src/tests/attribute/enumstore/FILES
deleted file mode 100644
index 6fdb2381292..00000000000
--- a/searchlib/src/tests/attribute/enumstore/FILES
+++ /dev/null
@@ -1 +0,0 @@
-enumstore.cpp
diff --git a/searchlib/src/tests/attribute/extendattributes/DESC b/searchlib/src/tests/attribute/extendattributes/DESC
deleted file mode 100644
index 4f88189a1d7..00000000000
--- a/searchlib/src/tests/attribute/extendattributes/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for extendable attributes.
diff --git a/searchlib/src/tests/attribute/extendattributes/FILES b/searchlib/src/tests/attribute/extendattributes/FILES
deleted file mode 100644
index 930039cae19..00000000000
--- a/searchlib/src/tests/attribute/extendattributes/FILES
+++ /dev/null
@@ -1 +0,0 @@
-extendattribute.cpp
diff --git a/searchlib/src/tests/attribute/multi_value_mapping/DESC b/searchlib/src/tests/attribute/multi_value_mapping/DESC
deleted file mode 100644
index 44c27ec9926..00000000000
--- a/searchlib/src/tests/attribute/multi_value_mapping/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a test for the MultivalueMapping class.
diff --git a/searchlib/src/tests/attribute/multi_value_mapping/FILES b/searchlib/src/tests/attribute/multi_value_mapping/FILES
deleted file mode 100644
index e6874376bb9..00000000000
--- a/searchlib/src/tests/attribute/multi_value_mapping/FILES
+++ /dev/null
@@ -1 +0,0 @@
-multi_value_mapping_test.cpp
diff --git a/searchlib/src/tests/attribute/postinglist/DESC b/searchlib/src/tests/attribute/postinglist/DESC
deleted file mode 100644
index 1499e3070fb..00000000000
--- a/searchlib/src/tests/attribute/postinglist/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a test for the AttributePostingList class.
diff --git a/searchlib/src/tests/attribute/postinglist/FILES b/searchlib/src/tests/attribute/postinglist/FILES
deleted file mode 100644
index 268f6c09f1e..00000000000
--- a/searchlib/src/tests/attribute/postinglist/FILES
+++ /dev/null
@@ -1 +0,0 @@
-postinglist.cpp
diff --git a/searchlib/src/tests/attribute/postinglistattribute/DESC b/searchlib/src/tests/attribute/postinglistattribute/DESC
deleted file mode 100644
index 04c97a729a0..00000000000
--- a/searchlib/src/tests/attribute/postinglistattribute/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for subclasses of PostingListAttribute.
diff --git a/searchlib/src/tests/attribute/postinglistattribute/FILES b/searchlib/src/tests/attribute/postinglistattribute/FILES
deleted file mode 100644
index 56029570a21..00000000000
--- a/searchlib/src/tests/attribute/postinglistattribute/FILES
+++ /dev/null
@@ -1 +0,0 @@
-postinglistattribute.cpp
diff --git a/searchlib/src/tests/attribute/reference_attribute/FILES b/searchlib/src/tests/attribute/reference_attribute/FILES
deleted file mode 100644
index 97203f7b4b0..00000000000
--- a/searchlib/src/tests/attribute/reference_attribute/FILES
+++ /dev/null
@@ -1 +0,0 @@
-reference_attribute_test.cpp
diff --git a/searchlib/src/tests/attribute/searchcontext/DESC b/searchlib/src/tests/attribute/searchcontext/DESC
deleted file mode 100644
index 8ce9805dbb0..00000000000
--- a/searchlib/src/tests/attribute/searchcontext/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit test for AttributeVector::SearchContext using all attribute vector implementations.
diff --git a/searchlib/src/tests/attribute/searchcontext/FILES b/searchlib/src/tests/attribute/searchcontext/FILES
deleted file mode 100644
index cebd66e863f..00000000000
--- a/searchlib/src/tests/attribute/searchcontext/FILES
+++ /dev/null
@@ -1 +0,0 @@
-searchcontext.cpp
diff --git a/searchlib/src/tests/attribute/sourceselector/DESC b/searchlib/src/tests/attribute/sourceselector/DESC
deleted file mode 100644
index 7568f5de080..00000000000
--- a/searchlib/src/tests/attribute/sourceselector/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a test of the sourceselector interface.
diff --git a/searchlib/src/tests/attribute/sourceselector/FILES b/searchlib/src/tests/attribute/sourceselector/FILES
deleted file mode 100644
index 0d2803e762d..00000000000
--- a/searchlib/src/tests/attribute/sourceselector/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sourceselector.cpp
diff --git a/searchlib/src/tests/attribute/stringattribute/DESC b/searchlib/src/tests/attribute/stringattribute/DESC
deleted file mode 100644
index 5d94ab94325..00000000000
--- a/searchlib/src/tests/attribute/stringattribute/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for SingleValueStringAttribute and MultiValueStringAttribute.
diff --git a/searchlib/src/tests/attribute/stringattribute/FILES b/searchlib/src/tests/attribute/stringattribute/FILES
deleted file mode 100644
index e68ef57177d..00000000000
--- a/searchlib/src/tests/attribute/stringattribute/FILES
+++ /dev/null
@@ -1 +0,0 @@
-stringattribute.cpp
diff --git a/searchlib/src/tests/attribute/tensorattribute/DESC b/searchlib/src/tests/attribute/tensorattribute/DESC
deleted file mode 100644
index 1cd9aa7cf14..00000000000
--- a/searchlib/src/tests/attribute/tensorattribute/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for TensorAttribute.
diff --git a/searchlib/src/tests/attribute/tensorattribute/FILES b/searchlib/src/tests/attribute/tensorattribute/FILES
deleted file mode 100644
index 1c8480ffde7..00000000000
--- a/searchlib/src/tests/attribute/tensorattribute/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tensorattribute.cpp
diff --git a/searchlib/src/tests/bitcompression/expgolomb/DESC b/searchlib/src/tests/bitcompression/expgolomb/DESC
deleted file mode 100644
index 4abef0ecf24..00000000000
--- a/searchlib/src/tests/bitcompression/expgolomb/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Exp golomb encoding / decoding test. Take a look at expgolomb_test.cpp for details.
diff --git a/searchlib/src/tests/bitcompression/expgolomb/FILES b/searchlib/src/tests/bitcompression/expgolomb/FILES
deleted file mode 100644
index dbc3fa5e527..00000000000
--- a/searchlib/src/tests/bitcompression/expgolomb/FILES
+++ /dev/null
@@ -1 +0,0 @@
-expgolomb_test.cpp
diff --git a/searchlib/src/tests/bitvector/DESC b/searchlib/src/tests/bitvector/DESC
deleted file mode 100644
index 1a6c0fc2959..00000000000
--- a/searchlib/src/tests/bitvector/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a test for the BitVector class.
diff --git a/searchlib/src/tests/bitvector/FILES b/searchlib/src/tests/bitvector/FILES
deleted file mode 100644
index 0688c3933eb..00000000000
--- a/searchlib/src/tests/bitvector/FILES
+++ /dev/null
@@ -1 +0,0 @@
-bitvectorbenchmark.cpp
diff --git a/searchlib/src/tests/bytecomplens/DESC b/searchlib/src/tests/bytecomplens/DESC
deleted file mode 100644
index e40e528ddea..00000000000
--- a/searchlib/src/tests/bytecomplens/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test of search::ByteCompressedLengths class. Look at bytecomp.cpp for details.
diff --git a/searchlib/src/tests/bytecomplens/FILES b/searchlib/src/tests/bytecomplens/FILES
deleted file mode 100644
index c44e7f254f8..00000000000
--- a/searchlib/src/tests/bytecomplens/FILES
+++ /dev/null
@@ -1 +0,0 @@
-bytecomplens.cpp
diff --git a/searchlib/src/tests/common/bitvector/DESC b/searchlib/src/tests/common/bitvector/DESC
deleted file mode 100644
index 313f0f89f2a..00000000000
--- a/searchlib/src/tests/common/bitvector/DESC
+++ /dev/null
@@ -1 +0,0 @@
-bitvector test. Take a look at bitvector_test.cpp for details.
diff --git a/searchlib/src/tests/common/bitvector/FILES b/searchlib/src/tests/common/bitvector/FILES
deleted file mode 100644
index a2583d74519..00000000000
--- a/searchlib/src/tests/common/bitvector/FILES
+++ /dev/null
@@ -1 +0,0 @@
-bitvector_test.cpp
diff --git a/searchlib/src/tests/common/foregroundtaskexecutor/DESC b/searchlib/src/tests/common/foregroundtaskexecutor/DESC
deleted file mode 100644
index bfa0dfa3e6a..00000000000
--- a/searchlib/src/tests/common/foregroundtaskexecutor/DESC
+++ /dev/null
@@ -1 +0,0 @@
-foregroundtaskexecutor test. Take a look at foregroundtaskexecutor_test.cpp for details.
diff --git a/searchlib/src/tests/common/foregroundtaskexecutor/FILES b/searchlib/src/tests/common/foregroundtaskexecutor/FILES
deleted file mode 100644
index 5c0c9178abd..00000000000
--- a/searchlib/src/tests/common/foregroundtaskexecutor/FILES
+++ /dev/null
@@ -1 +0,0 @@
-foregroundtaskexecutor_test.cpp
diff --git a/searchlib/src/tests/common/location/FILES b/searchlib/src/tests/common/location/FILES
deleted file mode 100644
index 7bd6fa8b581..00000000000
--- a/searchlib/src/tests/common/location/FILES
+++ /dev/null
@@ -1 +0,0 @@
-location_test.cpp
diff --git a/searchlib/src/tests/common/packets/DESC b/searchlib/src/tests/common/packets/DESC
deleted file mode 100644
index 0808703b5fb..00000000000
--- a/searchlib/src/tests/common/packets/DESC
+++ /dev/null
@@ -1 +0,0 @@
-packets test. Take a look at packets.cpp for details.
diff --git a/searchlib/src/tests/common/packets/FILES b/searchlib/src/tests/common/packets/FILES
deleted file mode 100644
index 35191f9a36d..00000000000
--- a/searchlib/src/tests/common/packets/FILES
+++ /dev/null
@@ -1 +0,0 @@
-packets.cpp
diff --git a/searchlib/src/tests/common/rcuvector/DESC b/searchlib/src/tests/common/rcuvector/DESC
deleted file mode 100644
index 38af6317f80..00000000000
--- a/searchlib/src/tests/common/rcuvector/DESC
+++ /dev/null
@@ -1 +0,0 @@
-rcuvector test. Take a look at rcuvector.h for details.
diff --git a/searchlib/src/tests/common/rcuvector/FILES b/searchlib/src/tests/common/rcuvector/FILES
deleted file mode 100644
index a8bae8dbd5c..00000000000
--- a/searchlib/src/tests/common/rcuvector/FILES
+++ /dev/null
@@ -1 +0,0 @@
-rcuvector.h
diff --git a/searchlib/src/tests/common/sequencedtaskexecutor/DESC b/searchlib/src/tests/common/sequencedtaskexecutor/DESC
deleted file mode 100644
index 29ac00d3453..00000000000
--- a/searchlib/src/tests/common/sequencedtaskexecutor/DESC
+++ /dev/null
@@ -1 +0,0 @@
-sequencedtaskexecutor test. Take a look at sequencedtaskexecutor_test.cpp for details.
diff --git a/searchlib/src/tests/common/sequencedtaskexecutor/FILES b/searchlib/src/tests/common/sequencedtaskexecutor/FILES
deleted file mode 100644
index a8ebec0ebca..00000000000
--- a/searchlib/src/tests/common/sequencedtaskexecutor/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sequencedtaskexecutor_test.cpp
diff --git a/searchlib/src/tests/common/summaryfeatures/DESC b/searchlib/src/tests/common/summaryfeatures/DESC
deleted file mode 100644
index 9cc24928a82..00000000000
--- a/searchlib/src/tests/common/summaryfeatures/DESC
+++ /dev/null
@@ -1 +0,0 @@
-summaryfeatures test. Take a look at summaryfeatures.cpp for details.
diff --git a/searchlib/src/tests/common/summaryfeatures/FILES b/searchlib/src/tests/common/summaryfeatures/FILES
deleted file mode 100644
index 19692b59229..00000000000
--- a/searchlib/src/tests/common/summaryfeatures/FILES
+++ /dev/null
@@ -1 +0,0 @@
-summaryfeatures.cpp
diff --git a/searchlib/src/tests/create-test.sh b/searchlib/src/tests/create-test.sh
deleted file mode 100755
index cddedd8f407..00000000000
--- a/searchlib/src/tests/create-test.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-gen_project_file() {
- echo "generating '$1' ..."
- echo "APPLICATION ${test}_test" > $1
- echo "OBJS ${test}_test" >> $1
- echo "LIBS searchlib/searchlib" >> $1
- echo "EXTERNALLIBS searchcommon persistencetypes metrics" >> $1
- echo "" >> $1
- echo "CUSTOMMAKE" >> $1
- echo "test: all" >> $1
- echo -e "\t\$(HIDE) \$(LDL) \$(VALGRIND) ./${test}_test" >> $1
-}
-
-gen_source() {
- echo "generating '$1' ..."
- echo "#include <vespa/vespalib/testkit/test_kit.h>" >> $1
- echo "" >> $1
- echo "// using namespace search;" >> $1
- echo "" >> $1
- echo "TEST(\"require something\") {" >> $1
- echo "}" >> $1
- echo "" >> $1
- echo "TEST_MAIN() { TEST_RUN_ALL(); }" >> $1
-}
-
-gen_file_list() {
- echo "generating '$1' ..."
- echo "${test}_test.cpp" > $1
-}
-
-if [ $# -ne 1 ]; then
- echo "usage: $0 <name>"
- echo " name: name of the test to create"
- exit 1
-fi
-
-test=$1
-if [ -e $test ]; then
- echo "$test already present, don't want to mess it up..."
- exit 1
-fi
-
-echo "creating directory '$test' ..."
-mkdir -p $test || exit 1
-cd $test || exit 1
-test=`basename $test`
-
-gen_project_file fastos.project
-gen_source ${test}_test.cpp
-gen_file_list FILES
diff --git a/searchlib/src/tests/datastore/array_store/FILES b/searchlib/src/tests/datastore/array_store/FILES
deleted file mode 100644
index ec39b445b1e..00000000000
--- a/searchlib/src/tests/datastore/array_store/FILES
+++ /dev/null
@@ -1 +0,0 @@
-array_store_test.cpp
diff --git a/searchlib/src/tests/datastore/array_store_config/FILES b/searchlib/src/tests/datastore/array_store_config/FILES
deleted file mode 100644
index 71f4e3f5b8c..00000000000
--- a/searchlib/src/tests/datastore/array_store_config/FILES
+++ /dev/null
@@ -1 +0,0 @@
-array_store_config_test.cpp
diff --git a/searchlib/src/tests/datastore/buffer_type/FILES b/searchlib/src/tests/datastore/buffer_type/FILES
deleted file mode 100644
index 741fd68ebba..00000000000
--- a/searchlib/src/tests/datastore/buffer_type/FILES
+++ /dev/null
@@ -1 +0,0 @@
-buffer_type_test.cpp
diff --git a/searchlib/src/tests/datastore/datastore/FILES b/searchlib/src/tests/datastore/datastore/FILES
deleted file mode 100644
index 4592d1dd9cd..00000000000
--- a/searchlib/src/tests/datastore/datastore/FILES
+++ /dev/null
@@ -1 +0,0 @@
-datastore_test.cpp
diff --git a/searchlib/src/tests/datastore/unique_store/FILES b/searchlib/src/tests/datastore/unique_store/FILES
deleted file mode 100644
index 8045679eb6a..00000000000
--- a/searchlib/src/tests/datastore/unique_store/FILES
+++ /dev/null
@@ -1 +0,0 @@
-unique_store_test.cpp
diff --git a/searchlib/src/tests/diskindex/bitvector/DESC b/searchlib/src/tests/diskindex/bitvector/DESC
deleted file mode 100644
index 313f0f89f2a..00000000000
--- a/searchlib/src/tests/diskindex/bitvector/DESC
+++ /dev/null
@@ -1 +0,0 @@
-bitvector test. Take a look at bitvector_test.cpp for details.
diff --git a/searchlib/src/tests/diskindex/bitvector/FILES b/searchlib/src/tests/diskindex/bitvector/FILES
deleted file mode 100644
index a2583d74519..00000000000
--- a/searchlib/src/tests/diskindex/bitvector/FILES
+++ /dev/null
@@ -1 +0,0 @@
-bitvector_test.cpp
diff --git a/searchlib/src/tests/diskindex/diskindex/DESC b/searchlib/src/tests/diskindex/diskindex/DESC
deleted file mode 100644
index fc14faaca7a..00000000000
--- a/searchlib/src/tests/diskindex/diskindex/DESC
+++ /dev/null
@@ -1 +0,0 @@
-diskindex test. Take a look at diskindex_test.cpp for details.
diff --git a/searchlib/src/tests/diskindex/diskindex/FILES b/searchlib/src/tests/diskindex/diskindex/FILES
deleted file mode 100644
index 54eef52f856..00000000000
--- a/searchlib/src/tests/diskindex/diskindex/FILES
+++ /dev/null
@@ -1 +0,0 @@
-diskindex_test.cpp
diff --git a/searchlib/src/tests/diskindex/fusion/DESC b/searchlib/src/tests/diskindex/fusion/DESC
deleted file mode 100644
index b0db86422b9..00000000000
--- a/searchlib/src/tests/diskindex/fusion/DESC
+++ /dev/null
@@ -1 +0,0 @@
-fusion test. Performs basic fusion operations and validates results.
diff --git a/searchlib/src/tests/diskindex/fusion/FILES b/searchlib/src/tests/diskindex/fusion/FILES
deleted file mode 100644
index fb22ce21a9d..00000000000
--- a/searchlib/src/tests/diskindex/fusion/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fusion_test.cpp
diff --git a/searchlib/src/tests/docstore/chunk/FILES b/searchlib/src/tests/docstore/chunk/FILES
deleted file mode 100644
index 8c4b64f0979..00000000000
--- a/searchlib/src/tests/docstore/chunk/FILES
+++ /dev/null
@@ -1 +0,0 @@
-chunk_test.cpp
diff --git a/searchlib/src/tests/docstore/document_store/FILES b/searchlib/src/tests/docstore/document_store/FILES
deleted file mode 100644
index b1dd2b610d0..00000000000
--- a/searchlib/src/tests/docstore/document_store/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_store_test.cpp
diff --git a/searchlib/src/tests/docstore/document_store_visitor/DESC b/searchlib/src/tests/docstore/document_store_visitor/DESC
deleted file mode 100644
index 03e9c6681ad..00000000000
--- a/searchlib/src/tests/docstore/document_store_visitor/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Document store visiting test.
diff --git a/searchlib/src/tests/docstore/document_store_visitor/FILES b/searchlib/src/tests/docstore/document_store_visitor/FILES
deleted file mode 100644
index 412f9879bb5..00000000000
--- a/searchlib/src/tests/docstore/document_store_visitor/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_store_visitor_test.cpp
diff --git a/searchlib/src/tests/docstore/file_chunk/FILES b/searchlib/src/tests/docstore/file_chunk/FILES
deleted file mode 100644
index 9425cdb4f00..00000000000
--- a/searchlib/src/tests/docstore/file_chunk/FILES
+++ /dev/null
@@ -1 +0,0 @@
-file_chunk_test.cpp
diff --git a/searchlib/src/tests/docstore/lid_info/FILES b/searchlib/src/tests/docstore/lid_info/FILES
deleted file mode 100644
index 305288cb9fa..00000000000
--- a/searchlib/src/tests/docstore/lid_info/FILES
+++ /dev/null
@@ -1 +0,0 @@
-lid_info_test.cpp
diff --git a/searchlib/src/tests/docstore/logdatastore/DESC b/searchlib/src/tests/docstore/logdatastore/DESC
deleted file mode 100644
index f035e6aecfb..00000000000
--- a/searchlib/src/tests/docstore/logdatastore/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Tests behavior of class search::DataStore from <searchlib/docstore/datastore.h>
diff --git a/searchlib/src/tests/docstore/logdatastore/FILES b/searchlib/src/tests/docstore/logdatastore/FILES
deleted file mode 100644
index 6bfee2917f4..00000000000
--- a/searchlib/src/tests/docstore/logdatastore/FILES
+++ /dev/null
@@ -1 +0,0 @@
-datastore.cpp
diff --git a/searchlib/src/tests/docstore/store_by_bucket/FILES b/searchlib/src/tests/docstore/store_by_bucket/FILES
deleted file mode 100644
index 5c2c341aa80..00000000000
--- a/searchlib/src/tests/docstore/store_by_bucket/FILES
+++ /dev/null
@@ -1 +0,0 @@
-store_by_bucket_test.cpp
diff --git a/searchlib/src/tests/engine/docsumapi/DESC b/searchlib/src/tests/engine/docsumapi/DESC
deleted file mode 100644
index fa9d72e98be..00000000000
--- a/searchlib/src/tests/engine/docsumapi/DESC
+++ /dev/null
@@ -1 +0,0 @@
-docsumapi test. Take a look at docsumapi.cpp for details.
diff --git a/searchlib/src/tests/engine/docsumapi/FILES b/searchlib/src/tests/engine/docsumapi/FILES
deleted file mode 100644
index 3e2e2e636be..00000000000
--- a/searchlib/src/tests/engine/docsumapi/FILES
+++ /dev/null
@@ -1 +0,0 @@
-docsumapi.cpp
diff --git a/searchlib/src/tests/engine/monitorapi/DESC b/searchlib/src/tests/engine/monitorapi/DESC
deleted file mode 100644
index 882636f1952..00000000000
--- a/searchlib/src/tests/engine/monitorapi/DESC
+++ /dev/null
@@ -1 +0,0 @@
-monitorapi test. Take a look at monitorapi.cpp for details.
diff --git a/searchlib/src/tests/engine/monitorapi/FILES b/searchlib/src/tests/engine/monitorapi/FILES
deleted file mode 100644
index 16ad6789632..00000000000
--- a/searchlib/src/tests/engine/monitorapi/FILES
+++ /dev/null
@@ -1 +0,0 @@
-monitorapi.cpp
diff --git a/searchlib/src/tests/engine/searchapi/DESC b/searchlib/src/tests/engine/searchapi/DESC
deleted file mode 100644
index b006841d75d..00000000000
--- a/searchlib/src/tests/engine/searchapi/DESC
+++ /dev/null
@@ -1 +0,0 @@
-searchapi test. Take a look at searchapi.cpp for details.
diff --git a/searchlib/src/tests/engine/searchapi/FILES b/searchlib/src/tests/engine/searchapi/FILES
deleted file mode 100644
index 806f04bbe4c..00000000000
--- a/searchlib/src/tests/engine/searchapi/FILES
+++ /dev/null
@@ -1 +0,0 @@
-searchapi.cpp
diff --git a/searchlib/src/tests/engine/transportserver/DESC b/searchlib/src/tests/engine/transportserver/DESC
deleted file mode 100644
index 2fb736a9319..00000000000
--- a/searchlib/src/tests/engine/transportserver/DESC
+++ /dev/null
@@ -1 +0,0 @@
-transportserver test. Take a look at transportserver.cpp for details.
diff --git a/searchlib/src/tests/engine/transportserver/FILES b/searchlib/src/tests/engine/transportserver/FILES
deleted file mode 100644
index ec1b60cf739..00000000000
--- a/searchlib/src/tests/engine/transportserver/FILES
+++ /dev/null
@@ -1 +0,0 @@
-transportserver.cpp
diff --git a/searchlib/src/tests/features/DESC b/searchlib/src/tests/features/DESC
deleted file mode 100644
index 333541aa0a0..00000000000
--- a/searchlib/src/tests/features/DESC
+++ /dev/null
@@ -1 +0,0 @@
-features test. Take a look at features.cpp for details.
diff --git a/searchlib/src/tests/features/FILES b/searchlib/src/tests/features/FILES
deleted file mode 100644
index 6e53d562fc0..00000000000
--- a/searchlib/src/tests/features/FILES
+++ /dev/null
@@ -1,3 +0,0 @@
-beta_features.cpp
-prod_features.cpp
-nativerank.cpp
diff --git a/searchlib/src/tests/features/constant/FILES b/searchlib/src/tests/features/constant/FILES
deleted file mode 100644
index 5ff67b0b742..00000000000
--- a/searchlib/src/tests/features/constant/FILES
+++ /dev/null
@@ -1 +0,0 @@
-constant_test.cpp
diff --git a/searchlib/src/tests/features/element_completeness/FILES b/searchlib/src/tests/features/element_completeness/FILES
deleted file mode 100644
index 5b995b34729..00000000000
--- a/searchlib/src/tests/features/element_completeness/FILES
+++ /dev/null
@@ -1 +0,0 @@
-element_completeness_test.cpp
diff --git a/searchlib/src/tests/features/euclidean_distance/FILES b/searchlib/src/tests/features/euclidean_distance/FILES
deleted file mode 100644
index 4ed7d9969b3..00000000000
--- a/searchlib/src/tests/features/euclidean_distance/FILES
+++ /dev/null
@@ -1 +0,0 @@
-euclidean_distance_test.cpp
diff --git a/searchlib/src/tests/features/item_raw_score/FILES b/searchlib/src/tests/features/item_raw_score/FILES
deleted file mode 100644
index bce307ff6c1..00000000000
--- a/searchlib/src/tests/features/item_raw_score/FILES
+++ /dev/null
@@ -1 +0,0 @@
-item_raw_score_test.cpp
diff --git a/searchlib/src/tests/features/native_dot_product/FILES b/searchlib/src/tests/features/native_dot_product/FILES
deleted file mode 100644
index ab007656448..00000000000
--- a/searchlib/src/tests/features/native_dot_product/FILES
+++ /dev/null
@@ -1 +0,0 @@
-native_dot_product_test.cpp
diff --git a/searchlib/src/tests/features/raw_score/FILES b/searchlib/src/tests/features/raw_score/FILES
deleted file mode 100644
index 479927259ee..00000000000
--- a/searchlib/src/tests/features/raw_score/FILES
+++ /dev/null
@@ -1 +0,0 @@
-raw_score_test.cpp
diff --git a/searchlib/src/tests/features/tensor/FILES b/searchlib/src/tests/features/tensor/FILES
deleted file mode 100644
index 6ece9b360b5..00000000000
--- a/searchlib/src/tests/features/tensor/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tensor_test.cpp
diff --git a/searchlib/src/tests/features/tensor_from_labels/FILES b/searchlib/src/tests/features/tensor_from_labels/FILES
deleted file mode 100644
index daecb2bbf5b..00000000000
--- a/searchlib/src/tests/features/tensor_from_labels/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tensor_from_labels_test.cpp
diff --git a/searchlib/src/tests/features/tensor_from_weighted_set/FILES b/searchlib/src/tests/features/tensor_from_weighted_set/FILES
deleted file mode 100644
index 639a54230b1..00000000000
--- a/searchlib/src/tests/features/tensor_from_weighted_set/FILES
+++ /dev/null
@@ -1 +0,0 @@
-tensor_from_weighted_set_test.cpp
diff --git a/searchlib/src/tests/features/text_similarity_feature/FILES b/searchlib/src/tests/features/text_similarity_feature/FILES
deleted file mode 100644
index dfa5173742d..00000000000
--- a/searchlib/src/tests/features/text_similarity_feature/FILES
+++ /dev/null
@@ -1 +0,0 @@
-text_similarity_feature_test.cpp
diff --git a/searchlib/src/tests/features/util/FILES b/searchlib/src/tests/features/util/FILES
deleted file mode 100644
index f0bd0a06305..00000000000
--- a/searchlib/src/tests/features/util/FILES
+++ /dev/null
@@ -1 +0,0 @@
-util_test.cpp
diff --git a/searchlib/src/tests/fef/DESC b/searchlib/src/tests/fef/DESC
deleted file mode 100644
index 431ee7a1a1f..00000000000
--- a/searchlib/src/tests/fef/DESC
+++ /dev/null
@@ -1 +0,0 @@
-fef test. Take a look at fef.cpp for details.
diff --git a/searchlib/src/tests/fef/FILES b/searchlib/src/tests/fef/FILES
deleted file mode 100644
index 7e6752e501e..00000000000
--- a/searchlib/src/tests/fef/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fef.cpp
diff --git a/searchlib/src/tests/fef/attributecontent/DESC b/searchlib/src/tests/fef/attributecontent/DESC
deleted file mode 100644
index fa1c457c573..00000000000
--- a/searchlib/src/tests/fef/attributecontent/DESC
+++ /dev/null
@@ -1 +0,0 @@
-attributecontent test. Take a look at attributecontent.cpp for details.
diff --git a/searchlib/src/tests/fef/attributecontent/FILES b/searchlib/src/tests/fef/attributecontent/FILES
deleted file mode 100644
index 4325e907b45..00000000000
--- a/searchlib/src/tests/fef/attributecontent/FILES
+++ /dev/null
@@ -1 +0,0 @@
-attributecontent.cpp
diff --git a/searchlib/src/tests/fef/featurenamebuilder/DESC b/searchlib/src/tests/fef/featurenamebuilder/DESC
deleted file mode 100644
index 38abf1af794..00000000000
--- a/searchlib/src/tests/fef/featurenamebuilder/DESC
+++ /dev/null
@@ -1 +0,0 @@
-featurenamebuilder test. Take a look at featurenamebuilder.cpp for details.
diff --git a/searchlib/src/tests/fef/featurenamebuilder/FILES b/searchlib/src/tests/fef/featurenamebuilder/FILES
deleted file mode 100644
index 71df1d1033f..00000000000
--- a/searchlib/src/tests/fef/featurenamebuilder/FILES
+++ /dev/null
@@ -1 +0,0 @@
-featurenamebuilder.cpp
diff --git a/searchlib/src/tests/fef/featurenameparser/DESC b/searchlib/src/tests/fef/featurenameparser/DESC
deleted file mode 100644
index 4c3da4e47a2..00000000000
--- a/searchlib/src/tests/fef/featurenameparser/DESC
+++ /dev/null
@@ -1 +0,0 @@
-featurenameparser test. Take a look at featurenameparser.cpp for details.
diff --git a/searchlib/src/tests/fef/featurenameparser/FILES b/searchlib/src/tests/fef/featurenameparser/FILES
deleted file mode 100644
index 4567d5b7ccc..00000000000
--- a/searchlib/src/tests/fef/featurenameparser/FILES
+++ /dev/null
@@ -1 +0,0 @@
-featurenameparser.cpp
diff --git a/searchlib/src/tests/fef/featureoverride/DESC b/searchlib/src/tests/fef/featureoverride/DESC
deleted file mode 100644
index 1605959dae6..00000000000
--- a/searchlib/src/tests/fef/featureoverride/DESC
+++ /dev/null
@@ -1 +0,0 @@
-featureoverride test. Take a look at featureoverride.cpp for details.
diff --git a/searchlib/src/tests/fef/featureoverride/FILES b/searchlib/src/tests/fef/featureoverride/FILES
deleted file mode 100644
index 864ca65657a..00000000000
--- a/searchlib/src/tests/fef/featureoverride/FILES
+++ /dev/null
@@ -1 +0,0 @@
-featureoverride.cpp
diff --git a/searchlib/src/tests/fef/parameter/DESC b/searchlib/src/tests/fef/parameter/DESC
deleted file mode 100644
index 738e0dbd512..00000000000
--- a/searchlib/src/tests/fef/parameter/DESC
+++ /dev/null
@@ -1 +0,0 @@
-parameter test. Take a look at parameter.cpp for details.
diff --git a/searchlib/src/tests/fef/parameter/FILES b/searchlib/src/tests/fef/parameter/FILES
deleted file mode 100644
index 20c9e0c9ba0..00000000000
--- a/searchlib/src/tests/fef/parameter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-parameter.cpp
diff --git a/searchlib/src/tests/fef/phrasesplitter/DESC b/searchlib/src/tests/fef/phrasesplitter/DESC
deleted file mode 100644
index fba49bdb8c0..00000000000
--- a/searchlib/src/tests/fef/phrasesplitter/DESC
+++ /dev/null
@@ -1 +0,0 @@
-phrasesplitter test. Take a look at phrasesplitter.cpp for details.
diff --git a/searchlib/src/tests/fef/phrasesplitter/FILES b/searchlib/src/tests/fef/phrasesplitter/FILES
deleted file mode 100644
index be37941d0c8..00000000000
--- a/searchlib/src/tests/fef/phrasesplitter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-phrasesplitter.cpp
diff --git a/searchlib/src/tests/fef/properties/DESC b/searchlib/src/tests/fef/properties/DESC
deleted file mode 100644
index 02faa4cb727..00000000000
--- a/searchlib/src/tests/fef/properties/DESC
+++ /dev/null
@@ -1 +0,0 @@
-properties test. Take a look at properties.cpp for details.
diff --git a/searchlib/src/tests/fef/properties/FILES b/searchlib/src/tests/fef/properties/FILES
deleted file mode 100644
index 61054fa62c2..00000000000
--- a/searchlib/src/tests/fef/properties/FILES
+++ /dev/null
@@ -1 +0,0 @@
-properties.cpp
diff --git a/searchlib/src/tests/fef/rank_program/FILES b/searchlib/src/tests/fef/rank_program/FILES
deleted file mode 100644
index bf6e4665a68..00000000000
--- a/searchlib/src/tests/fef/rank_program/FILES
+++ /dev/null
@@ -1 +0,0 @@
-rank_program_test.cpp
diff --git a/searchlib/src/tests/fef/resolver/DESC b/searchlib/src/tests/fef/resolver/DESC
deleted file mode 100644
index 7d3262ab110..00000000000
--- a/searchlib/src/tests/fef/resolver/DESC
+++ /dev/null
@@ -1 +0,0 @@
-resolver test. Take a look at resolver_test.cpp for details.
diff --git a/searchlib/src/tests/fef/resolver/FILES b/searchlib/src/tests/fef/resolver/FILES
deleted file mode 100644
index c40c0663848..00000000000
--- a/searchlib/src/tests/fef/resolver/FILES
+++ /dev/null
@@ -1 +0,0 @@
-resolver_test.cpp
diff --git a/searchlib/src/tests/fef/table/DESC b/searchlib/src/tests/fef/table/DESC
deleted file mode 100644
index 65834ed1305..00000000000
--- a/searchlib/src/tests/fef/table/DESC
+++ /dev/null
@@ -1 +0,0 @@
-table test. Take a look at table.cpp for details.
diff --git a/searchlib/src/tests/fef/table/FILES b/searchlib/src/tests/fef/table/FILES
deleted file mode 100644
index 40be726aeb8..00000000000
--- a/searchlib/src/tests/fef/table/FILES
+++ /dev/null
@@ -1 +0,0 @@
-table.cpp
diff --git a/searchlib/src/tests/fef/termfieldmodel/DESC b/searchlib/src/tests/fef/termfieldmodel/DESC
deleted file mode 100644
index 2c8df5a8aab..00000000000
--- a/searchlib/src/tests/fef/termfieldmodel/DESC
+++ /dev/null
@@ -1 +0,0 @@
-termfieldmodel test. Take a look at termfieldmodel_test.cpp for details.
diff --git a/searchlib/src/tests/fef/termfieldmodel/FILES b/searchlib/src/tests/fef/termfieldmodel/FILES
deleted file mode 100644
index b5440335bc6..00000000000
--- a/searchlib/src/tests/fef/termfieldmodel/FILES
+++ /dev/null
@@ -1 +0,0 @@
-termfieldmodel_test.cpp
diff --git a/searchlib/src/tests/fef/termmatchdatamerger/DESC b/searchlib/src/tests/fef/termmatchdatamerger/DESC
deleted file mode 100644
index abacd50b719..00000000000
--- a/searchlib/src/tests/fef/termmatchdatamerger/DESC
+++ /dev/null
@@ -1 +0,0 @@
-termmatchdatamerger test. Take a look at termmatchdatamerger.cpp for details.
diff --git a/searchlib/src/tests/fef/termmatchdatamerger/FILES b/searchlib/src/tests/fef/termmatchdatamerger/FILES
deleted file mode 100644
index 709c15d91b8..00000000000
--- a/searchlib/src/tests/fef/termmatchdatamerger/FILES
+++ /dev/null
@@ -1 +0,0 @@
-termmatchdatamerger_test.cpp
diff --git a/searchlib/src/tests/fileheadertk/DESC b/searchlib/src/tests/fileheadertk/DESC
deleted file mode 100644
index 08ad9a0769d..00000000000
--- a/searchlib/src/tests/fileheadertk/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Ensures that FileHeaderTk works as expected.
diff --git a/searchlib/src/tests/fileheadertk/FILES b/searchlib/src/tests/fileheadertk/FILES
deleted file mode 100644
index fe82bf13af7..00000000000
--- a/searchlib/src/tests/fileheadertk/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fileheadertk.cpp
diff --git a/searchlib/src/tests/forcelink/DESC b/searchlib/src/tests/forcelink/DESC
deleted file mode 100644
index c73185a8736..00000000000
--- a/searchlib/src/tests/forcelink/DESC
+++ /dev/null
@@ -1 +0,0 @@
-forcelink test. Take a look at forcelink.cpp for details.
diff --git a/searchlib/src/tests/forcelink/FILES b/searchlib/src/tests/forcelink/FILES
deleted file mode 100644
index d917375ebf2..00000000000
--- a/searchlib/src/tests/forcelink/FILES
+++ /dev/null
@@ -1 +0,0 @@
-forcelink.cpp
diff --git a/searchlib/src/tests/grouping/DESC b/searchlib/src/tests/grouping/DESC
deleted file mode 100644
index 1aa6cb37e89..00000000000
--- a/searchlib/src/tests/grouping/DESC
+++ /dev/null
@@ -1 +0,0 @@
-grouping test. Take a look at grouping.cpp for details.
diff --git a/searchlib/src/tests/grouping/FILES b/searchlib/src/tests/grouping/FILES
deleted file mode 100644
index af7f7e71257..00000000000
--- a/searchlib/src/tests/grouping/FILES
+++ /dev/null
@@ -1,4 +0,0 @@
-grouping.cpp
-lhs.out
-rhs.out
-diff.txt
diff --git a/searchlib/src/tests/groupingengine/DESC b/searchlib/src/tests/groupingengine/DESC
deleted file mode 100644
index 1aa6cb37e89..00000000000
--- a/searchlib/src/tests/groupingengine/DESC
+++ /dev/null
@@ -1 +0,0 @@
-grouping test. Take a look at grouping.cpp for details.
diff --git a/searchlib/src/tests/groupingengine/FILES b/searchlib/src/tests/groupingengine/FILES
deleted file mode 100644
index af7f7e71257..00000000000
--- a/searchlib/src/tests/groupingengine/FILES
+++ /dev/null
@@ -1,4 +0,0 @@
-grouping.cpp
-lhs.out
-rhs.out
-diff.txt
diff --git a/searchlib/src/tests/hitcollector/DESC b/searchlib/src/tests/hitcollector/DESC
deleted file mode 100644
index a8751d4a1fe..00000000000
--- a/searchlib/src/tests/hitcollector/DESC
+++ /dev/null
@@ -1 +0,0 @@
-hitcollector test. Take a look at hitcollector.cpp for details.
diff --git a/searchlib/src/tests/hitcollector/FILES b/searchlib/src/tests/hitcollector/FILES
deleted file mode 100644
index 88a0d4ba4b3..00000000000
--- a/searchlib/src/tests/hitcollector/FILES
+++ /dev/null
@@ -1 +0,0 @@
-hitcollector.cpp
diff --git a/searchlib/src/tests/index/docbuilder/DESC b/searchlib/src/tests/index/docbuilder/DESC
deleted file mode 100644
index 514903f9988..00000000000
--- a/searchlib/src/tests/index/docbuilder/DESC
+++ /dev/null
@@ -1 +0,0 @@
-ildocbuilder test. Take a look at ildocbuilder.cpp for details.
diff --git a/searchlib/src/tests/index/docbuilder/FILES b/searchlib/src/tests/index/docbuilder/FILES
deleted file mode 100644
index 4d90f226fb4..00000000000
--- a/searchlib/src/tests/index/docbuilder/FILES
+++ /dev/null
@@ -1 +0,0 @@
-ildocbuilder.cpp
diff --git a/searchlib/src/tests/index/doctypebuilder/DESC b/searchlib/src/tests/index/doctypebuilder/DESC
deleted file mode 100644
index a199241a331..00000000000
--- a/searchlib/src/tests/index/doctypebuilder/DESC
+++ /dev/null
@@ -1 +0,0 @@
-doctypebuilder test. Take a look at doctypebuilder.cpp for details.
diff --git a/searchlib/src/tests/index/doctypebuilder/FILES b/searchlib/src/tests/index/doctypebuilder/FILES
deleted file mode 100644
index 9f261ca9a9a..00000000000
--- a/searchlib/src/tests/index/doctypebuilder/FILES
+++ /dev/null
@@ -1 +0,0 @@
-doctypebuilder.cpp
diff --git a/searchlib/src/tests/indexmetainfo/DESC b/searchlib/src/tests/indexmetainfo/DESC
deleted file mode 100644
index ee312b5fcdc..00000000000
--- a/searchlib/src/tests/indexmetainfo/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test the API class used to access the 'meta-info.txt' file used to
-hold meta information for an index.
diff --git a/searchlib/src/tests/indexmetainfo/FILES b/searchlib/src/tests/indexmetainfo/FILES
deleted file mode 100644
index 8a96f5f3311..00000000000
--- a/searchlib/src/tests/indexmetainfo/FILES
+++ /dev/null
@@ -1 +0,0 @@
-indexmetainfo.cpp
diff --git a/searchlib/src/tests/memoryindex/compact_document_words_store/DESC b/searchlib/src/tests/memoryindex/compact_document_words_store/DESC
deleted file mode 100644
index ee9c4b346a2..00000000000
--- a/searchlib/src/tests/memoryindex/compact_document_words_store/DESC
+++ /dev/null
@@ -1 +0,0 @@
-compact_document_words_store test. Take a look at compact_document_words_store_test.cpp for details.
diff --git a/searchlib/src/tests/memoryindex/compact_document_words_store/FILES b/searchlib/src/tests/memoryindex/compact_document_words_store/FILES
deleted file mode 100644
index fb2fb1d637b..00000000000
--- a/searchlib/src/tests/memoryindex/compact_document_words_store/FILES
+++ /dev/null
@@ -1 +0,0 @@
-compact_document_words_store_test.cpp
diff --git a/searchlib/src/tests/memoryindex/datastore/DESC b/searchlib/src/tests/memoryindex/datastore/DESC
deleted file mode 100644
index 2851a4c7e6a..00000000000
--- a/searchlib/src/tests/memoryindex/datastore/DESC
+++ /dev/null
@@ -1 +0,0 @@
-datastore tests. Take a look at featurestore_test.cpp and wordstore_test.cpp for details.
diff --git a/searchlib/src/tests/memoryindex/datastore/FILES b/searchlib/src/tests/memoryindex/datastore/FILES
deleted file mode 100644
index 42d862c8c16..00000000000
--- a/searchlib/src/tests/memoryindex/datastore/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-featurestore_test.cpp
-wordstore_test.cpp
diff --git a/searchlib/src/tests/memoryindex/dictionary/DESC b/searchlib/src/tests/memoryindex/dictionary/DESC
deleted file mode 100644
index ff559f42641..00000000000
--- a/searchlib/src/tests/memoryindex/dictionary/DESC
+++ /dev/null
@@ -1 +0,0 @@
-dictionary test. Take a look at dictionary_test.cpp for details.
diff --git a/searchlib/src/tests/memoryindex/dictionary/FILES b/searchlib/src/tests/memoryindex/dictionary/FILES
deleted file mode 100644
index 1f3a8ebef87..00000000000
--- a/searchlib/src/tests/memoryindex/dictionary/FILES
+++ /dev/null
@@ -1 +0,0 @@
-dictionary_test.cpp
diff --git a/searchlib/src/tests/memoryindex/document_remover/DESC b/searchlib/src/tests/memoryindex/document_remover/DESC
deleted file mode 100644
index 7fe35ab896f..00000000000
--- a/searchlib/src/tests/memoryindex/document_remover/DESC
+++ /dev/null
@@ -1 +0,0 @@
-document remover test. Take a look at document_remover_test.cpp for details.
diff --git a/searchlib/src/tests/memoryindex/document_remover/FILES b/searchlib/src/tests/memoryindex/document_remover/FILES
deleted file mode 100644
index 9b7cb9a8cfa..00000000000
--- a/searchlib/src/tests/memoryindex/document_remover/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document_remover_test.cpp
diff --git a/searchlib/src/tests/memoryindex/documentinverter/DESC b/searchlib/src/tests/memoryindex/documentinverter/DESC
deleted file mode 100644
index 5dc610c2a24..00000000000
--- a/searchlib/src/tests/memoryindex/documentinverter/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Document inverter test. Take a look at documentinverter_test.cpp for details.
diff --git a/searchlib/src/tests/memoryindex/documentinverter/FILES b/searchlib/src/tests/memoryindex/documentinverter/FILES
deleted file mode 100644
index c54817b9df1..00000000000
--- a/searchlib/src/tests/memoryindex/documentinverter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-documentinverter_test.cpp
diff --git a/searchlib/src/tests/memoryindex/fieldinverter/DESC b/searchlib/src/tests/memoryindex/fieldinverter/DESC
deleted file mode 100644
index a40890fdc3d..00000000000
--- a/searchlib/src/tests/memoryindex/fieldinverter/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Field inverter test. Take a look at fieldinverter_test.cpp for details.
diff --git a/searchlib/src/tests/memoryindex/fieldinverter/FILES b/searchlib/src/tests/memoryindex/fieldinverter/FILES
deleted file mode 100644
index 892febd1c50..00000000000
--- a/searchlib/src/tests/memoryindex/fieldinverter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fieldinverter_test.cpp
diff --git a/searchlib/src/tests/memoryindex/memoryindex/DESC b/searchlib/src/tests/memoryindex/memoryindex/DESC
deleted file mode 100644
index 87b69181803..00000000000
--- a/searchlib/src/tests/memoryindex/memoryindex/DESC
+++ /dev/null
@@ -1 +0,0 @@
-memoryindex test. Take a look at memoryindex_test.cpp for details.
diff --git a/searchlib/src/tests/memoryindex/memoryindex/FILES b/searchlib/src/tests/memoryindex/memoryindex/FILES
deleted file mode 100644
index 4faa7668dfc..00000000000
--- a/searchlib/src/tests/memoryindex/memoryindex/FILES
+++ /dev/null
@@ -1 +0,0 @@
-memoryindex_test.cpp
diff --git a/searchlib/src/tests/memoryindex/urlfieldinverter/DESC b/searchlib/src/tests/memoryindex/urlfieldinverter/DESC
deleted file mode 100644
index 00115ada607..00000000000
--- a/searchlib/src/tests/memoryindex/urlfieldinverter/DESC
+++ /dev/null
@@ -1 +0,0 @@
-UrlField inverter test. Take a look at urlfieldinverter_test.cpp for details.
diff --git a/searchlib/src/tests/memoryindex/urlfieldinverter/FILES b/searchlib/src/tests/memoryindex/urlfieldinverter/FILES
deleted file mode 100644
index ac08b0a3e90..00000000000
--- a/searchlib/src/tests/memoryindex/urlfieldinverter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-urlfieldinverter_test.cpp
diff --git a/searchlib/src/tests/nearsearch/DESC b/searchlib/src/tests/nearsearch/DESC
deleted file mode 100644
index 1af96b6ab4c..00000000000
--- a/searchlib/src/tests/nearsearch/DESC
+++ /dev/null
@@ -1 +0,0 @@
-nearsearch test. Take a look at nearsearch.cpp for details.
diff --git a/searchlib/src/tests/nearsearch/FILES b/searchlib/src/tests/nearsearch/FILES
deleted file mode 100644
index e8ff3e62114..00000000000
--- a/searchlib/src/tests/nearsearch/FILES
+++ /dev/null
@@ -1 +0,0 @@
-nearsearch.cpp
diff --git a/searchlib/src/tests/prettyfloat/DESC b/searchlib/src/tests/prettyfloat/DESC
deleted file mode 100644
index fc4e85bcc09..00000000000
--- a/searchlib/src/tests/prettyfloat/DESC
+++ /dev/null
@@ -1 +0,0 @@
-prettyfloat test. Take a look at prettyfloat.cpp for details.
diff --git a/searchlib/src/tests/prettyfloat/FILES b/searchlib/src/tests/prettyfloat/FILES
deleted file mode 100644
index fe3e151cf90..00000000000
--- a/searchlib/src/tests/prettyfloat/FILES
+++ /dev/null
@@ -1 +0,0 @@
-prettyfloat.cpp
diff --git a/searchlib/src/tests/query/DESC b/searchlib/src/tests/query/DESC
deleted file mode 100644
index 6461797f6bd..00000000000
--- a/searchlib/src/tests/query/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a test of the query interface.
diff --git a/searchlib/src/tests/query/FILES b/searchlib/src/tests/query/FILES
deleted file mode 100644
index 6f11f149162..00000000000
--- a/searchlib/src/tests/query/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-query.cpp
-query-old.cpp
diff --git a/searchlib/src/tests/queryeval/DESC b/searchlib/src/tests/queryeval/DESC
deleted file mode 100644
index 15e6efd489d..00000000000
--- a/searchlib/src/tests/queryeval/DESC
+++ /dev/null
@@ -1 +0,0 @@
-queryeval test. Take a look at queryeval.cpp for details.
diff --git a/searchlib/src/tests/queryeval/FILES b/searchlib/src/tests/queryeval/FILES
deleted file mode 100644
index d082d6f8725..00000000000
--- a/searchlib/src/tests/queryeval/FILES
+++ /dev/null
@@ -1 +0,0 @@
-queryeval.cpp
diff --git a/searchlib/src/tests/queryeval/blueprint/DESC b/searchlib/src/tests/queryeval/blueprint/DESC
deleted file mode 100644
index a2634c017bd..00000000000
--- a/searchlib/src/tests/queryeval/blueprint/DESC
+++ /dev/null
@@ -1 +0,0 @@
-blueprint test. Take a look at blueprint_test.cpp for details.
diff --git a/searchlib/src/tests/queryeval/blueprint/FILES b/searchlib/src/tests/queryeval/blueprint/FILES
deleted file mode 100644
index 89c566c5aea..00000000000
--- a/searchlib/src/tests/queryeval/blueprint/FILES
+++ /dev/null
@@ -1 +0,0 @@
-blueprint_test.cpp
diff --git a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/DESC b/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/DESC
deleted file mode 100644
index 097198d38ef..00000000000
--- a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/DESC
+++ /dev/null
@@ -1 +0,0 @@
-booleanmatchiteratorwrapper test. Take a look at booleanmatchiteratorwrapper.cpp for details.
diff --git a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/FILES b/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/FILES
deleted file mode 100644
index a47b5b35a40..00000000000
--- a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/FILES
+++ /dev/null
@@ -1 +0,0 @@
-booleanmatchiteratorwrapper.cpp
diff --git a/searchlib/src/tests/queryeval/dot_product/FILES b/searchlib/src/tests/queryeval/dot_product/FILES
deleted file mode 100644
index cf1bcd96ec4..00000000000
--- a/searchlib/src/tests/queryeval/dot_product/FILES
+++ /dev/null
@@ -1 +0,0 @@
-dot_product_test.cpp
diff --git a/searchlib/src/tests/queryeval/equiv/DESC b/searchlib/src/tests/queryeval/equiv/DESC
deleted file mode 100644
index e294d10cb23..00000000000
--- a/searchlib/src/tests/queryeval/equiv/DESC
+++ /dev/null
@@ -1 +0,0 @@
-equiv test. Take a look at equiv_test.cpp for details.
diff --git a/searchlib/src/tests/queryeval/equiv/FILES b/searchlib/src/tests/queryeval/equiv/FILES
deleted file mode 100644
index 79adf32c1d5..00000000000
--- a/searchlib/src/tests/queryeval/equiv/FILES
+++ /dev/null
@@ -1 +0,0 @@
-equiv_test.cpp
diff --git a/searchlib/src/tests/queryeval/fake_searchable/DESC b/searchlib/src/tests/queryeval/fake_searchable/DESC
deleted file mode 100644
index 75ce65796f0..00000000000
--- a/searchlib/src/tests/queryeval/fake_searchable/DESC
+++ /dev/null
@@ -1 +0,0 @@
-fake_searchable test. Take a look at fake_searchable_test.cpp for details.
diff --git a/searchlib/src/tests/queryeval/fake_searchable/FILES b/searchlib/src/tests/queryeval/fake_searchable/FILES
deleted file mode 100644
index b02a791e332..00000000000
--- a/searchlib/src/tests/queryeval/fake_searchable/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fake_searchable_test.cpp
diff --git a/searchlib/src/tests/queryeval/monitoring_search_iterator/DESC b/searchlib/src/tests/queryeval/monitoring_search_iterator/DESC
deleted file mode 100644
index 1c126deb4ed..00000000000
--- a/searchlib/src/tests/queryeval/monitoring_search_iterator/DESC
+++ /dev/null
@@ -1 +0,0 @@
-monitoring_search_iterator test. Take a look at monitoring_search_iterator_test.cpp for details.
diff --git a/searchlib/src/tests/queryeval/monitoring_search_iterator/FILES b/searchlib/src/tests/queryeval/monitoring_search_iterator/FILES
deleted file mode 100644
index b514a3cf512..00000000000
--- a/searchlib/src/tests/queryeval/monitoring_search_iterator/FILES
+++ /dev/null
@@ -1 +0,0 @@
-monitoring_search_iterator_test.cpp
diff --git a/searchlib/src/tests/queryeval/multibitvectoriterator/DESC b/searchlib/src/tests/queryeval/multibitvectoriterator/DESC
deleted file mode 100644
index 96fc26f5950..00000000000
--- a/searchlib/src/tests/queryeval/multibitvectoriterator/DESC
+++ /dev/null
@@ -1 +0,0 @@
-multibitvectoriterator test. Take a look at multibitvectoriterator_test.cpp for details.
diff --git a/searchlib/src/tests/queryeval/multibitvectoriterator/FILES b/searchlib/src/tests/queryeval/multibitvectoriterator/FILES
deleted file mode 100644
index 7ae4331d090..00000000000
--- a/searchlib/src/tests/queryeval/multibitvectoriterator/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-multibitvectoriterator_test.cpp
-multibitvectoriterator_bench.cpp
diff --git a/searchlib/src/tests/queryeval/parallel_weak_and/DESC b/searchlib/src/tests/queryeval/parallel_weak_and/DESC
deleted file mode 100644
index f58343f384b..00000000000
--- a/searchlib/src/tests/queryeval/parallel_weak_and/DESC
+++ /dev/null
@@ -1 +0,0 @@
-parallel_weak_and test. Take a look at parallel_weak_and_test.cpp for details.
diff --git a/searchlib/src/tests/queryeval/parallel_weak_and/FILES b/searchlib/src/tests/queryeval/parallel_weak_and/FILES
deleted file mode 100644
index 972727bfa00..00000000000
--- a/searchlib/src/tests/queryeval/parallel_weak_and/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-weak_and_test.cpp
-weak_and_bench.cpp
diff --git a/searchlib/src/tests/queryeval/simple_phrase/DESC b/searchlib/src/tests/queryeval/simple_phrase/DESC
deleted file mode 100644
index 4b1ad693a7b..00000000000
--- a/searchlib/src/tests/queryeval/simple_phrase/DESC
+++ /dev/null
@@ -1 +0,0 @@
-simple_phrase test. Take a look at simple_phrase_test.cpp for details.
diff --git a/searchlib/src/tests/queryeval/simple_phrase/FILES b/searchlib/src/tests/queryeval/simple_phrase/FILES
deleted file mode 100644
index 31d8e1af993..00000000000
--- a/searchlib/src/tests/queryeval/simple_phrase/FILES
+++ /dev/null
@@ -1 +0,0 @@
-simple_phrase_test.cpp
diff --git a/searchlib/src/tests/queryeval/sourceblender/DESC b/searchlib/src/tests/queryeval/sourceblender/DESC
deleted file mode 100644
index 437dd818eb7..00000000000
--- a/searchlib/src/tests/queryeval/sourceblender/DESC
+++ /dev/null
@@ -1 +0,0 @@
-sourceblender test. Take a look at sourceblender.cpp for details.
diff --git a/searchlib/src/tests/queryeval/sourceblender/FILES b/searchlib/src/tests/queryeval/sourceblender/FILES
deleted file mode 100644
index 97be7bcaf53..00000000000
--- a/searchlib/src/tests/queryeval/sourceblender/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sourceblender.cpp
diff --git a/searchlib/src/tests/queryeval/sparse_vector_benchmark/FILES b/searchlib/src/tests/queryeval/sparse_vector_benchmark/FILES
deleted file mode 100644
index 48eda2416c9..00000000000
--- a/searchlib/src/tests/queryeval/sparse_vector_benchmark/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sparse_vector_benchmark_test.cpp
diff --git a/searchlib/src/tests/queryeval/weak_and/FILES b/searchlib/src/tests/queryeval/weak_and/FILES
deleted file mode 100644
index 972727bfa00..00000000000
--- a/searchlib/src/tests/queryeval/weak_and/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-weak_and_test.cpp
-weak_and_bench.cpp
diff --git a/searchlib/src/tests/queryeval/weak_and_heap/DESC b/searchlib/src/tests/queryeval/weak_and_heap/DESC
deleted file mode 100644
index 447bfc21e7c..00000000000
--- a/searchlib/src/tests/queryeval/weak_and_heap/DESC
+++ /dev/null
@@ -1 +0,0 @@
-weak_and_heap test. Take a look at weak_and_heap_test.cpp for details.
diff --git a/searchlib/src/tests/queryeval/weak_and_heap/FILES b/searchlib/src/tests/queryeval/weak_and_heap/FILES
deleted file mode 100644
index 05d3f4c5df0..00000000000
--- a/searchlib/src/tests/queryeval/weak_and_heap/FILES
+++ /dev/null
@@ -1 +0,0 @@
-weak_and_heap_test.cpp
diff --git a/searchlib/src/tests/queryeval/weak_and_scorers/DESC b/searchlib/src/tests/queryeval/weak_and_scorers/DESC
deleted file mode 100644
index ceaf1028aae..00000000000
--- a/searchlib/src/tests/queryeval/weak_and_scorers/DESC
+++ /dev/null
@@ -1 +0,0 @@
-weak_and_scorers test. Take a look at weak_and_scorers_test.cpp for details.
diff --git a/searchlib/src/tests/queryeval/weak_and_scorers/FILES b/searchlib/src/tests/queryeval/weak_and_scorers/FILES
deleted file mode 100644
index 7f3b71a9f34..00000000000
--- a/searchlib/src/tests/queryeval/weak_and_scorers/FILES
+++ /dev/null
@@ -1 +0,0 @@
-weak_and_scorers_test.cpp
diff --git a/searchlib/src/tests/queryeval/weighted_set_term/DESC b/searchlib/src/tests/queryeval/weighted_set_term/DESC
deleted file mode 100644
index 040554bdd0e..00000000000
--- a/searchlib/src/tests/queryeval/weighted_set_term/DESC
+++ /dev/null
@@ -1 +0,0 @@
-weighted_set_term test. Take a look at weighted_set_term_test.cpp for details.
diff --git a/searchlib/src/tests/queryeval/weighted_set_term/FILES b/searchlib/src/tests/queryeval/weighted_set_term/FILES
deleted file mode 100644
index 9912bc9a4a2..00000000000
--- a/searchlib/src/tests/queryeval/weighted_set_term/FILES
+++ /dev/null
@@ -1 +0,0 @@
-weighted_set_term_test.cpp
diff --git a/searchlib/src/tests/rankingexpression/feature_name_extractor/FILES b/searchlib/src/tests/rankingexpression/feature_name_extractor/FILES
deleted file mode 100644
index 6f6f6c1df43..00000000000
--- a/searchlib/src/tests/rankingexpression/feature_name_extractor/FILES
+++ /dev/null
@@ -1 +0,0 @@
-feature_name_extractor_test.cpp
diff --git a/searchlib/src/tests/ranksetup/DESC b/searchlib/src/tests/ranksetup/DESC
deleted file mode 100644
index 37f7cc6f2c5..00000000000
--- a/searchlib/src/tests/ranksetup/DESC
+++ /dev/null
@@ -1 +0,0 @@
-ranksetup test. Take a look at ranksetup.cpp for details.
diff --git a/searchlib/src/tests/ranksetup/FILES b/searchlib/src/tests/ranksetup/FILES
deleted file mode 100644
index f1fce1d28ff..00000000000
--- a/searchlib/src/tests/ranksetup/FILES
+++ /dev/null
@@ -1 +0,0 @@
-ranksetup.cpp
diff --git a/searchlib/src/tests/ranksetup/verify_feature/FILES b/searchlib/src/tests/ranksetup/verify_feature/FILES
deleted file mode 100644
index 652373e33da..00000000000
--- a/searchlib/src/tests/ranksetup/verify_feature/FILES
+++ /dev/null
@@ -1 +0,0 @@
-verify_feature_test.cpp
diff --git a/searchlib/src/tests/sort/DESC b/searchlib/src/tests/sort/DESC
deleted file mode 100644
index ad8ab11f5ba..00000000000
--- a/searchlib/src/tests/sort/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Testing templatized radixsort.
diff --git a/searchlib/src/tests/sort/FILES b/searchlib/src/tests/sort/FILES
deleted file mode 100644
index e2ef9d3c1ab..00000000000
--- a/searchlib/src/tests/sort/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sort.cpp
diff --git a/searchlib/src/tests/tensor/dense_tensor_store/FILES b/searchlib/src/tests/tensor/dense_tensor_store/FILES
deleted file mode 100644
index 28e832a2abd..00000000000
--- a/searchlib/src/tests/tensor/dense_tensor_store/FILES
+++ /dev/null
@@ -1 +0,0 @@
-dense_tensor_store_test.cpp
diff --git a/searchlib/src/tests/transactionlog/DESC b/searchlib/src/tests/transactionlog/DESC
deleted file mode 100644
index db53d59fb6c..00000000000
--- a/searchlib/src/tests/transactionlog/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Thios is a test of the tls/tlc interface.
diff --git a/searchlib/src/tests/transactionlog/FILES b/searchlib/src/tests/transactionlog/FILES
deleted file mode 100644
index babcf181807..00000000000
--- a/searchlib/src/tests/transactionlog/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-translogclient.cpp
-translogserver.cpp
diff --git a/searchlib/src/tests/transactionlogstress/DESC b/searchlib/src/tests/transactionlogstress/DESC
deleted file mode 100644
index 47dac6a9342..00000000000
--- a/searchlib/src/tests/transactionlogstress/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a stress test of the transaction log server.
diff --git a/searchlib/src/tests/transactionlogstress/FILES b/searchlib/src/tests/transactionlogstress/FILES
deleted file mode 100644
index 68cc8402652..00000000000
--- a/searchlib/src/tests/transactionlogstress/FILES
+++ /dev/null
@@ -1 +0,0 @@
-translogstress.cpp
diff --git a/searchlib/src/tests/true/DESC b/searchlib/src/tests/true/DESC
deleted file mode 100644
index 55b708ce96a..00000000000
--- a/searchlib/src/tests/true/DESC
+++ /dev/null
@@ -1 +0,0 @@
-A very simple test. A good starting point for writing new tests.
diff --git a/searchlib/src/tests/true/FILES b/searchlib/src/tests/true/FILES
deleted file mode 100644
index 7d324c5824d..00000000000
--- a/searchlib/src/tests/true/FILES
+++ /dev/null
@@ -1 +0,0 @@
-true.cpp
diff --git a/searchlib/src/tests/util/ioerrorhandler/DESC b/searchlib/src/tests/util/ioerrorhandler/DESC
deleted file mode 100644
index 3328798b936..00000000000
--- a/searchlib/src/tests/util/ioerrorhandler/DESC
+++ /dev/null
@@ -1 +0,0 @@
-IOErrorHandler test. Take a look at ioerrorhandler_test.cpp for details.
diff --git a/searchlib/src/tests/util/ioerrorhandler/FILES b/searchlib/src/tests/util/ioerrorhandler/FILES
deleted file mode 100644
index 2447a10e991..00000000000
--- a/searchlib/src/tests/util/ioerrorhandler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-ioerrorhandler_test.cpp
diff --git a/searchlib/src/tests/util/searchable_stats/DESC b/searchlib/src/tests/util/searchable_stats/DESC
deleted file mode 100644
index b8127b278f8..00000000000
--- a/searchlib/src/tests/util/searchable_stats/DESC
+++ /dev/null
@@ -1 +0,0 @@
-searchable_stats test. Take a look at searchable_stats_test.cpp for details.
diff --git a/searchlib/src/tests/util/searchable_stats/FILES b/searchlib/src/tests/util/searchable_stats/FILES
deleted file mode 100644
index 94e6ce7f4df..00000000000
--- a/searchlib/src/tests/util/searchable_stats/FILES
+++ /dev/null
@@ -1 +0,0 @@
-searchable_stats_test.cpp
diff --git a/searchlib/src/tests/util/sigbushandler/DESC b/searchlib/src/tests/util/sigbushandler/DESC
deleted file mode 100644
index 03ee94c85ba..00000000000
--- a/searchlib/src/tests/util/sigbushandler/DESC
+++ /dev/null
@@ -1 +0,0 @@
-SigBusHandler test. Take a look at sigbushandler_test.cpp for details.
diff --git a/searchlib/src/tests/util/sigbushandler/FILES b/searchlib/src/tests/util/sigbushandler/FILES
deleted file mode 100644
index 0998cd8a784..00000000000
--- a/searchlib/src/tests/util/sigbushandler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sigbushandler_test.cpp
diff --git a/searchlib/src/tests/util/slime_output_raw_buf_adapter/FILES b/searchlib/src/tests/util/slime_output_raw_buf_adapter/FILES
deleted file mode 100644
index 5870aa61349..00000000000
--- a/searchlib/src/tests/util/slime_output_raw_buf_adapter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-slime_output_raw_buf_adapter_test.cpp
diff --git a/searchlib/src/tests/util/statebuf/DESC b/searchlib/src/tests/util/statebuf/DESC
deleted file mode 100644
index 6368f32bcc6..00000000000
--- a/searchlib/src/tests/util/statebuf/DESC
+++ /dev/null
@@ -1 +0,0 @@
-statefile test. Take a look at statefile_test.cpp for details.
diff --git a/searchlib/src/tests/util/statebuf/FILES b/searchlib/src/tests/util/statebuf/FILES
deleted file mode 100644
index c651bb2758f..00000000000
--- a/searchlib/src/tests/util/statebuf/FILES
+++ /dev/null
@@ -1 +0,0 @@
-statefile_test.cpp
diff --git a/searchlib/src/tests/util/statefile/DESC b/searchlib/src/tests/util/statefile/DESC
deleted file mode 100644
index 6368f32bcc6..00000000000
--- a/searchlib/src/tests/util/statefile/DESC
+++ /dev/null
@@ -1 +0,0 @@
-statefile test. Take a look at statefile_test.cpp for details.
diff --git a/searchlib/src/tests/util/statefile/FILES b/searchlib/src/tests/util/statefile/FILES
deleted file mode 100644
index c651bb2758f..00000000000
--- a/searchlib/src/tests/util/statefile/FILES
+++ /dev/null
@@ -1 +0,0 @@
-statefile_test.cpp
diff --git a/searchlib/src/tests/vespa-fileheader-inspect/DESC b/searchlib/src/tests/vespa-fileheader-inspect/DESC
deleted file mode 100644
index ee57a2fdde3..00000000000
--- a/searchlib/src/tests/vespa-fileheader-inspect/DESC
+++ /dev/null
@@ -1 +0,0 @@
-fileheaderinspect test. Take a look at fileheaderinspect.cpp for details.
diff --git a/searchlib/src/tests/vespa-fileheader-inspect/FILES b/searchlib/src/tests/vespa-fileheader-inspect/FILES
deleted file mode 100644
index 7c32fb811d5..00000000000
--- a/searchlib/src/tests/vespa-fileheader-inspect/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fileheaderinspect.cpp
diff --git a/searchsummary/src/tests/docsummary/slime_summary/FILES b/searchsummary/src/tests/docsummary/slime_summary/FILES
deleted file mode 100644
index 6d3a81d3ffc..00000000000
--- a/searchsummary/src/tests/docsummary/slime_summary/FILES
+++ /dev/null
@@ -1 +0,0 @@
-slime_summary_test.cpp
diff --git a/slobrok/src/tests/backoff/DESC b/slobrok/src/tests/backoff/DESC
deleted file mode 100644
index 9955163994a..00000000000
--- a/slobrok/src/tests/backoff/DESC
+++ /dev/null
@@ -1 +0,0 @@
-BackOff test. Take a look at testbackoff.cpp for details.
diff --git a/slobrok/src/tests/backoff/FILES b/slobrok/src/tests/backoff/FILES
deleted file mode 100644
index 39cce25d2e1..00000000000
--- a/slobrok/src/tests/backoff/FILES
+++ /dev/null
@@ -1 +0,0 @@
-testbackoff.cpp
diff --git a/slobrok/src/tests/configure/DESC b/slobrok/src/tests/configure/DESC
deleted file mode 100644
index 893e0fb704c..00000000000
--- a/slobrok/src/tests/configure/DESC
+++ /dev/null
@@ -1 +0,0 @@
-configure test. Take a look at configure.cpp for details.
diff --git a/slobrok/src/tests/configure/FILES b/slobrok/src/tests/configure/FILES
deleted file mode 100644
index 573a507f04b..00000000000
--- a/slobrok/src/tests/configure/FILES
+++ /dev/null
@@ -1 +0,0 @@
-configure.cpp
diff --git a/slobrok/src/tests/mirrorapi/DESC b/slobrok/src/tests/mirrorapi/DESC
deleted file mode 100644
index 5b7a0ac4677..00000000000
--- a/slobrok/src/tests/mirrorapi/DESC
+++ /dev/null
@@ -1 +0,0 @@
-mirrorapi test. Take a look at mirrorapi.cpp for details.
diff --git a/slobrok/src/tests/mirrorapi/FILES b/slobrok/src/tests/mirrorapi/FILES
deleted file mode 100644
index a46f09cf2ac..00000000000
--- a/slobrok/src/tests/mirrorapi/FILES
+++ /dev/null
@@ -1 +0,0 @@
-mirrorapi.cpp
diff --git a/slobrok/src/tests/registerapi/DESC b/slobrok/src/tests/registerapi/DESC
deleted file mode 100644
index a448754c118..00000000000
--- a/slobrok/src/tests/registerapi/DESC
+++ /dev/null
@@ -1 +0,0 @@
-registerapi test. Take a look at registerapi.cpp for details.
diff --git a/slobrok/src/tests/registerapi/FILES b/slobrok/src/tests/registerapi/FILES
deleted file mode 100644
index d04c46a17ee..00000000000
--- a/slobrok/src/tests/registerapi/FILES
+++ /dev/null
@@ -1 +0,0 @@
-registerapi.cpp
diff --git a/slobrok/src/tests/standalone/DESC b/slobrok/src/tests/standalone/DESC
deleted file mode 100644
index 7086f999d64..00000000000
--- a/slobrok/src/tests/standalone/DESC
+++ /dev/null
@@ -1 +0,0 @@
-standalone test. Take a look at standalone.cpp for details.
diff --git a/slobrok/src/tests/standalone/FILES b/slobrok/src/tests/standalone/FILES
deleted file mode 100644
index e691561022f..00000000000
--- a/slobrok/src/tests/standalone/FILES
+++ /dev/null
@@ -1 +0,0 @@
-standalone.cpp
diff --git a/staging_vespalib/src/tests/array/DESC b/staging_vespalib/src/tests/array/DESC
deleted file mode 100644
index 59c59c2c50a..00000000000
--- a/staging_vespalib/src/tests/array/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Array test. Take a look at array_test.cpp for details.
diff --git a/staging_vespalib/src/tests/array/FILES b/staging_vespalib/src/tests/array/FILES
deleted file mode 100644
index fa3825f832f..00000000000
--- a/staging_vespalib/src/tests/array/FILES
+++ /dev/null
@@ -1 +0,0 @@
-array_test.cpp
diff --git a/staging_vespalib/src/tests/benchmark/DESC b/staging_vespalib/src/tests/benchmark/DESC
deleted file mode 100644
index cc3b175dace..00000000000
--- a/staging_vespalib/src/tests/benchmark/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is so far a test to show benchmarks of different programming techniques.
diff --git a/staging_vespalib/src/tests/benchmark/FILES b/staging_vespalib/src/tests/benchmark/FILES
deleted file mode 100644
index 30525d50897..00000000000
--- a/staging_vespalib/src/tests/benchmark/FILES
+++ /dev/null
@@ -1 +0,0 @@
-benchmark.cpp
diff --git a/staging_vespalib/src/tests/bits/DESC b/staging_vespalib/src/tests/bits/DESC
deleted file mode 100644
index 2ea242366ff..00000000000
--- a/staging_vespalib/src/tests/bits/DESC
+++ /dev/null
@@ -1 +0,0 @@
-bit manipultaion test. Take a look at bits.cpp for details.
diff --git a/staging_vespalib/src/tests/bits/FILES b/staging_vespalib/src/tests/bits/FILES
deleted file mode 100644
index 95ad604b592..00000000000
--- a/staging_vespalib/src/tests/bits/FILES
+++ /dev/null
@@ -1 +0,0 @@
-bits.cpp
diff --git a/staging_vespalib/src/tests/clock/DESC b/staging_vespalib/src/tests/clock/DESC
deleted file mode 100644
index 061f9af2d0a..00000000000
--- a/staging_vespalib/src/tests/clock/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for the clock.
diff --git a/staging_vespalib/src/tests/clock/FILES b/staging_vespalib/src/tests/clock/FILES
deleted file mode 100644
index c0a2e8e47ea..00000000000
--- a/staging_vespalib/src/tests/clock/FILES
+++ /dev/null
@@ -1 +0,0 @@
-clock.cpp
diff --git a/staging_vespalib/src/tests/crc/DESC b/staging_vespalib/src/tests/crc/DESC
deleted file mode 100644
index 587969f7773..00000000000
--- a/staging_vespalib/src/tests/crc/DESC
+++ /dev/null
@@ -1 +0,0 @@
-crc test. Take a look at crc.cpp for details.
diff --git a/staging_vespalib/src/tests/crc/FILES b/staging_vespalib/src/tests/crc/FILES
deleted file mode 100644
index 2e867a09e10..00000000000
--- a/staging_vespalib/src/tests/crc/FILES
+++ /dev/null
@@ -1 +0,0 @@
-crc.cpp
diff --git a/staging_vespalib/src/tests/create-test.sh b/staging_vespalib/src/tests/create-test.sh
deleted file mode 100755
index bf1893855cb..00000000000
--- a/staging_vespalib/src/tests/create-test.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-gen_project_file() {
- echo "generating '$1' ..."
- echo "APPLICATION ${test}_test" > $1
- echo "OBJS ${test}_test" >> $1
- echo "LIBS vespalib/staging_vespalib" >> $1
- echo "EXTERNALLIBS vespalib vespalog" >> $1
- echo "" >> $1
- echo "CUSTOMMAKE" >> $1
- echo "test: depend ${test}_test" >> $1
- echo -e "\t@./${test}_test" >> $1
-}
-
-gen_source() {
- echo "generating '$1' ..."
- echo "#include <vespa/vespalib/testkit/testapp.h>" > $1
- echo "#include <vespa/log/log.h>" >> $1
- echo "LOG_SETUP(\"${test}_test\");" >> $1
- echo "" >> $1
- echo "using namespace vespalib;" >> $1
- echo "" >> $1
- echo "TEST_SETUP(Test);" >> $1
- echo "" >> $1
- echo "int" >> $1
- echo "Test::Main()" >> $1
- echo "{" >> $1
- echo " TEST_INIT(\"${test}_test\");" >> $1
- echo " TEST_DONE();" >> $1
- echo "}" >> $1
-}
-
-gen_desc() {
- echo "generating '$1' ..."
- echo "$test test. Take a look at ${test}_test.cpp for details." > $1
-}
-
-gen_file_list() {
- echo "generating '$1' ..."
- echo "${test}_test.cpp" > $1
-}
-
-if [ $# -ne 1 ]; then
- echo "usage: $0 <name>"
- echo " name: name of the test to create"
- exit 1
-fi
-
-test=$1
-if [ -e $test ]; then
- echo "$test already present, don't want to mess it up..."
- exit 1
-fi
-
-echo "creating directory '$test' ..."
-mkdir -p $test || exit 1
-cd $test || exit 1
-test=`basename $test`
-
-gen_project_file fastos.project
-gen_source ${test}_test.cpp
-gen_desc DESC
-gen_file_list FILES
diff --git a/staging_vespalib/src/tests/encoding/base64/DESC b/staging_vespalib/src/tests/encoding/base64/DESC
deleted file mode 100644
index e9ece74e119..00000000000
--- a/staging_vespalib/src/tests/encoding/base64/DESC
+++ /dev/null
@@ -1 +0,0 @@
-base64 test. Take a look at base64.cpp for details.
diff --git a/staging_vespalib/src/tests/encoding/base64/FILES b/staging_vespalib/src/tests/encoding/base64/FILES
deleted file mode 100644
index 475b11151a3..00000000000
--- a/staging_vespalib/src/tests/encoding/base64/FILES
+++ /dev/null
@@ -1 +0,0 @@
-base64.cpp
diff --git a/staging_vespalib/src/tests/fileheader/DESC b/staging_vespalib/src/tests/fileheader/DESC
deleted file mode 100644
index feb98035803..00000000000
--- a/staging_vespalib/src/tests/fileheader/DESC
+++ /dev/null
@@ -1 +0,0 @@
-fileheader test. Take a look at fileheader.cpp for details.
diff --git a/staging_vespalib/src/tests/fileheader/FILES b/staging_vespalib/src/tests/fileheader/FILES
deleted file mode 100644
index f1ade37b054..00000000000
--- a/staging_vespalib/src/tests/fileheader/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fileheader.cpp
diff --git a/staging_vespalib/src/tests/floatingpointtype/DESC b/staging_vespalib/src/tests/floatingpointtype/DESC
deleted file mode 100644
index 4bdf790ff44..00000000000
--- a/staging_vespalib/src/tests/floatingpointtype/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Floating point wrapper test.
diff --git a/staging_vespalib/src/tests/floatingpointtype/FILES b/staging_vespalib/src/tests/floatingpointtype/FILES
deleted file mode 100644
index dd496cb1e12..00000000000
--- a/staging_vespalib/src/tests/floatingpointtype/FILES
+++ /dev/null
@@ -1 +0,0 @@
-floatingpointtypetest.cpp
diff --git a/staging_vespalib/src/tests/librarypool/DESC b/staging_vespalib/src/tests/librarypool/DESC
deleted file mode 100644
index 2330c52fae7..00000000000
--- a/staging_vespalib/src/tests/librarypool/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Library pool test. Take a look at librarypool_test.cpp for details.
diff --git a/staging_vespalib/src/tests/librarypool/FILES b/staging_vespalib/src/tests/librarypool/FILES
deleted file mode 100644
index c8bb90cf093..00000000000
--- a/staging_vespalib/src/tests/librarypool/FILES
+++ /dev/null
@@ -1 +0,0 @@
-librarypool_test.cpp
diff --git a/staging_vespalib/src/tests/objectdump/DESC b/staging_vespalib/src/tests/objectdump/DESC
deleted file mode 100644
index 747ea8bb015..00000000000
--- a/staging_vespalib/src/tests/objectdump/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test dumping of identifiable objects to human-readable form.
diff --git a/staging_vespalib/src/tests/objectdump/FILES b/staging_vespalib/src/tests/objectdump/FILES
deleted file mode 100644
index f44f8ce9c4c..00000000000
--- a/staging_vespalib/src/tests/objectdump/FILES
+++ /dev/null
@@ -1 +0,0 @@
-objectdump.cpp
diff --git a/staging_vespalib/src/tests/objects/DESC b/staging_vespalib/src/tests/objects/DESC
deleted file mode 100644
index fe2ee1fa6f4..00000000000
--- a/staging_vespalib/src/tests/objects/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-identifiable test. Take a look at identifiable.cpp for details.
-asciistream test. Take a look at asciistream.cpp for details.
diff --git a/staging_vespalib/src/tests/objects/FILES b/staging_vespalib/src/tests/objects/FILES
deleted file mode 100644
index f50b9f9ca5a..00000000000
--- a/staging_vespalib/src/tests/objects/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-identifiable.cpp
-asciistream.cpp
diff --git a/staging_vespalib/src/tests/objectselection/DESC b/staging_vespalib/src/tests/objectselection/DESC
deleted file mode 100644
index 929fb82d99a..00000000000
--- a/staging_vespalib/src/tests/objectselection/DESC
+++ /dev/null
@@ -1 +0,0 @@
-objectselection test. Take a look at objectselection.cpp for details.
diff --git a/staging_vespalib/src/tests/objectselection/FILES b/staging_vespalib/src/tests/objectselection/FILES
deleted file mode 100644
index ebc80a4c647..00000000000
--- a/staging_vespalib/src/tests/objectselection/FILES
+++ /dev/null
@@ -1 +0,0 @@
-objectselection.cpp
diff --git a/staging_vespalib/src/tests/polymorphicarray/DESC b/staging_vespalib/src/tests/polymorphicarray/DESC
deleted file mode 100644
index dd68c799d64..00000000000
--- a/staging_vespalib/src/tests/polymorphicarray/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Array for polymorphic types test. Take a look at polymorphicarray_test.cpp for details.
diff --git a/staging_vespalib/src/tests/polymorphicarray/FILES b/staging_vespalib/src/tests/polymorphicarray/FILES
deleted file mode 100644
index d61af365757..00000000000
--- a/staging_vespalib/src/tests/polymorphicarray/FILES
+++ /dev/null
@@ -1 +0,0 @@
-polymorphicarray_test.cpp
diff --git a/staging_vespalib/src/tests/programoptions/DESC b/staging_vespalib/src/tests/programoptions/DESC
deleted file mode 100644
index 6ec9a059c7d..00000000000
--- a/staging_vespalib/src/tests/programoptions/DESC
+++ /dev/null
@@ -1 +0,0 @@
-programoptions test. Take a look at programoptions.cpp for details.
diff --git a/staging_vespalib/src/tests/programoptions/FILES b/staging_vespalib/src/tests/programoptions/FILES
deleted file mode 100644
index 468a6bfb10a..00000000000
--- a/staging_vespalib/src/tests/programoptions/FILES
+++ /dev/null
@@ -1 +0,0 @@
-programoptions.cpp
diff --git a/staging_vespalib/src/tests/rusage/DESC b/staging_vespalib/src/tests/rusage/DESC
deleted file mode 100644
index 957ed92a119..00000000000
--- a/staging_vespalib/src/tests/rusage/DESC
+++ /dev/null
@@ -1 +0,0 @@
-rusage test. Take a look at rusage_test.cpp for details.
diff --git a/staging_vespalib/src/tests/rusage/FILES b/staging_vespalib/src/tests/rusage/FILES
deleted file mode 100644
index bea76c6f532..00000000000
--- a/staging_vespalib/src/tests/rusage/FILES
+++ /dev/null
@@ -1 +0,0 @@
-rusage_test.cpp
diff --git a/staging_vespalib/src/tests/shutdownguard/DESC b/staging_vespalib/src/tests/shutdownguard/DESC
deleted file mode 100644
index 869fc61d80f..00000000000
--- a/staging_vespalib/src/tests/shutdownguard/DESC
+++ /dev/null
@@ -1 +0,0 @@
-shutdown guard test. Take a look at shutdownguard_test.cpp for details.
diff --git a/staging_vespalib/src/tests/shutdownguard/FILES b/staging_vespalib/src/tests/shutdownguard/FILES
deleted file mode 100644
index 0c040a71f20..00000000000
--- a/staging_vespalib/src/tests/shutdownguard/FILES
+++ /dev/null
@@ -1 +0,0 @@
-suicide_test.cpp
diff --git a/staging_vespalib/src/tests/state_server/FILES b/staging_vespalib/src/tests/state_server/FILES
deleted file mode 100644
index 2328b597e56..00000000000
--- a/staging_vespalib/src/tests/state_server/FILES
+++ /dev/null
@@ -1 +0,0 @@
-state_server_test.cpp
diff --git a/staging_vespalib/src/tests/stllike/DESC b/staging_vespalib/src/tests/stllike/DESC
deleted file mode 100644
index ec13a79916b..00000000000
--- a/staging_vespalib/src/tests/stllike/DESC
+++ /dev/null
@@ -1 +0,0 @@
-hash test. Take a look at hash.cpp for details.
diff --git a/staging_vespalib/src/tests/stllike/FILES b/staging_vespalib/src/tests/stllike/FILES
deleted file mode 100644
index eb3794b4a28..00000000000
--- a/staging_vespalib/src/tests/stllike/FILES
+++ /dev/null
@@ -1,3 +0,0 @@
-hash.cpp
-uniq_by_sort_map_hash.cpp
-lrucache.cpp
diff --git a/staging_vespalib/src/tests/util/process_memory_stats/DESC b/staging_vespalib/src/tests/util/process_memory_stats/DESC
deleted file mode 100644
index 3f2b5fb571e..00000000000
--- a/staging_vespalib/src/tests/util/process_memory_stats/DESC
+++ /dev/null
@@ -1 +0,0 @@
-ProcessMemoryStats test. Take a look at process_memory_stats_test.cpp for details.
diff --git a/staging_vespalib/src/tests/util/process_memory_stats/FILES b/staging_vespalib/src/tests/util/process_memory_stats/FILES
deleted file mode 100644
index 18ccce970a4..00000000000
--- a/staging_vespalib/src/tests/util/process_memory_stats/FILES
+++ /dev/null
@@ -1 +0,0 @@
-process_memory_stats_test.cpp
diff --git a/staging_vespalib/src/tests/xmlserializable/DESC b/staging_vespalib/src/tests/xmlserializable/DESC
deleted file mode 100644
index 7768b3e7b6d..00000000000
--- a/staging_vespalib/src/tests/xmlserializable/DESC
+++ /dev/null
@@ -1 +0,0 @@
-xmlserializable test. Take a look at xmlserializabletest.cpp for details.
diff --git a/staging_vespalib/src/tests/xmlserializable/FILES b/staging_vespalib/src/tests/xmlserializable/FILES
deleted file mode 100644
index e7c7d2397b7..00000000000
--- a/staging_vespalib/src/tests/xmlserializable/FILES
+++ /dev/null
@@ -1 +0,0 @@
-xmlserializabletest.cpp
diff --git a/standalone-container/src/main/sh/jdisc_container_start b/standalone-container/src/main/sh/jdisc_container_start
deleted file mode 100755
index 5b4202c9ddc..00000000000
--- a/standalone-container/src/main/sh/jdisc_container_start
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/bin/bash
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-# BEGIN environment bootstrap section
-# Do not edit between here and END as this section should stay identical in all scripts
-
-findpath () {
- myname=${0}
- mypath=${myname%/*}
- myname=${myname##*/}
- if [ "$mypath" ] && [ -d "$mypath" ]; then
- return
- fi
- mypath=$(pwd)
- if [ -f "${mypath}/${myname}" ]; then
- return
- fi
- echo "FATAL: Could not figure out the path where $myname lives from $0"
- exit 1
-}
-
-COMMON_ENV=libexec/vespa/common-env.sh
-
-source_common_env () {
- if [ "$VESPA_HOME" ] && [ -d "$VESPA_HOME" ]; then
- export VESPA_HOME
- common_env=$VESPA_HOME/$COMMON_ENV
- if [ -f "$common_env" ]; then
- . $common_env
- return
- fi
- fi
- return 1
-}
-
-findroot () {
- source_common_env && return
- if [ "$VESPA_HOME" ]; then
- echo "FATAL: bad VESPA_HOME value '$VESPA_HOME'"
- exit 1
- fi
- if [ "$ROOT" ] && [ -d "$ROOT" ]; then
- VESPA_HOME="$ROOT"
- source_common_env && return
- fi
- findpath
- while [ "$mypath" ]; do
- VESPA_HOME=${mypath}
- source_common_env && return
- mypath=${mypath%/*}
- done
- echo "FATAL: missing VESPA_HOME environment variable"
- echo "Could not locate $COMMON_ENV anywhere"
- exit 1
-}
-
-findhost () {
- if [ "${VESPA_HOSTNAME}" = "" ]; then
- VESPA_HOSTNAME=$(vespa-detect-hostname || hostname -f || hostname || echo "localhost") || exit 1
- fi
- validate="${VESPA_HOME}/bin/vespa-validate-hostname"
- if [ -f "$validate" ]; then
- "$validate" "${VESPA_HOSTNAME}" || exit 1
- fi
- export VESPA_HOSTNAME
-}
-
-findroot
-findhost
-
-# END environment bootstrap section
-
-source $VESPA_HOME/libexec/vespa/container_start.sh
-
-VESPA_CONFIG_ID="container/standalone"
-export APP_LOCATION="standalone-container-jar-with-dependencies.jar"
-export WAIT_FOR_JVM_INIT=0
-
-if [ "$1" ]; then
- export standalone_jdisc_container__app_location=$1
-fi
-if [ -z "${standalone_jdisc_container__app_location}" ]; then
- echo "Usage: `basename $0` <app-location>" 1>&2
- exit -1
-fi
-shift
-
-export LOGGER_ENABLED="false"
-export LOGGER_LEVEL="ALL"
-export LOGGER_TAG="${VESPA_CONFIG_ID}"
-
-if [ -z "$VESPA_LOG_CONTROL_FILE" ]; then
- VESPA_LOG_CONTROL_FILE="$VESPA_HOME/var/db/jdisc/logcontrol/jdisc-container.logcontrol"
-fi
-export VESPA_LOG_CONTROL_FILE
-
-export CACHE_PATH="$VESPA_HOME/var/vespa/bundlecache/standalone"
-
-export PRIVILEGED=1
-
-start_container "$@"
diff --git a/storage/src/tests/CMakeLists.txt b/storage/src/tests/CMakeLists.txt
index 77582a17fb8..e3da883280a 100644
--- a/storage/src/tests/CMakeLists.txt
+++ b/storage/src/tests/CMakeLists.txt
@@ -31,9 +31,7 @@ vespa_add_executable(storage_testrunner_app TEST
storage_teststatus
)
-# TODO: Test with a larger chunk size to parallelize test suite runs
vespa_add_test(
NAME storage_testrunner_app
- COMMAND python ${PROJECT_SOURCE_DIR}/cppunit-parallelize.py --chunks 8 $<TARGET_FILE:storage_testrunner_app>
- DEPENDS storage_testrunner_app
+ COMMAND storage_testrunner_app
)
diff --git a/streamingvisitors/src/tests/hitcollector/DESC b/streamingvisitors/src/tests/hitcollector/DESC
deleted file mode 100644
index 4933144da80..00000000000
--- a/streamingvisitors/src/tests/hitcollector/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test of the hit collector used by the streaming searcher.
diff --git a/streamingvisitors/src/tests/hitcollector/FILES b/streamingvisitors/src/tests/hitcollector/FILES
deleted file mode 100644
index 88a0d4ba4b3..00000000000
--- a/streamingvisitors/src/tests/hitcollector/FILES
+++ /dev/null
@@ -1 +0,0 @@
-hitcollector.cpp
diff --git a/streamingvisitors/src/tests/querywrapper/DESC b/streamingvisitors/src/tests/querywrapper/DESC
deleted file mode 100644
index dfdd9d55a8e..00000000000
--- a/streamingvisitors/src/tests/querywrapper/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test of the query wrapper used by the rank processor.
diff --git a/streamingvisitors/src/tests/querywrapper/FILES b/streamingvisitors/src/tests/querywrapper/FILES
deleted file mode 100644
index 91138d25b2e..00000000000
--- a/streamingvisitors/src/tests/querywrapper/FILES
+++ /dev/null
@@ -1 +0,0 @@
-querywrapper.cpp
diff --git a/vbench/src/tests/app_dumpurl/FILES b/vbench/src/tests/app_dumpurl/FILES
deleted file mode 100644
index 54382f23234..00000000000
--- a/vbench/src/tests/app_dumpurl/FILES
+++ /dev/null
@@ -1 +0,0 @@
-app_dumpurl_test.cpp
diff --git a/vbench/src/tests/app_vbench/FILES b/vbench/src/tests/app_vbench/FILES
deleted file mode 100644
index 8a53b5dfde7..00000000000
--- a/vbench/src/tests/app_vbench/FILES
+++ /dev/null
@@ -1,3 +0,0 @@
-app_vbench_test.cpp
-vbench.cfg
-vbench.out
diff --git a/vbench/src/tests/benchmark_headers/FILES b/vbench/src/tests/benchmark_headers/FILES
deleted file mode 100644
index d2beb7f953f..00000000000
--- a/vbench/src/tests/benchmark_headers/FILES
+++ /dev/null
@@ -1 +0,0 @@
-benchmark_headers_test.cpp
diff --git a/vbench/src/tests/create-test.sh b/vbench/src/tests/create-test.sh
deleted file mode 100755
index ce5c9d2dec4..00000000000
--- a/vbench/src/tests/create-test.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-gen_project_file() {
- echo "generating '$1' ..."
- echo "APPLICATION ${test}_test" > $1
- echo "OBJS ${test}_test" >> $1
- echo "LIBS vbench/test/test" >> $1
- echo "LIBS vbench/vbench" >> $1
- echo "EXTERNALLIBS staging_vespalib" >> $1
- echo "" >> $1
- echo "CUSTOMMAKE" >> $1
- echo "test: ${test}_test" >> $1
- echo -e "\t\$(LDL) \$(VALGRIND) ./${test}_test" >> $1
-}
-
-gen_source() {
- echo "generating '$1' ..."
- echo "#include <vespa/vespalib/testkit/testapp.h>" >> $1
- echo "#include <vbench/test/all.h>" >> $1
- echo "" >> $1
- echo "using namespace vbench;" >> $1
- echo "" >> $1
- echo "TEST(\"foo\") {" >> $1
- echo " EXPECT_TRUE(true);" >> $1
- echo "}" >> $1
- echo "" >> $1
- echo "TEST_MAIN() { TEST_RUN_ALL(); }" >> $1
-}
-
-gen_file_list() {
- echo "generating '$1' ..."
- echo "${test}_test.cpp" > $1
-}
-
-if [ $# -ne 1 ]; then
- echo "usage: $0 <name>"
- echo " name: name of the test to create"
- exit 1
-fi
-
-test=$1
-if [ -e $test ]; then
- echo "$test already present, don't want to mess it up..."
- exit 1
-fi
-
-echo "creating directory '$test' ..."
-mkdir -p $test || exit 1
-cd $test || exit 1
-test=`basename $test`
-
-gen_project_file fastos.project
-gen_source ${test}_test.cpp
-gen_file_list FILES
diff --git a/vbench/src/tests/dispatcher/FILES b/vbench/src/tests/dispatcher/FILES
deleted file mode 100644
index 8e526a62463..00000000000
--- a/vbench/src/tests/dispatcher/FILES
+++ /dev/null
@@ -1 +0,0 @@
-dispatcher_test.cpp
diff --git a/vbench/src/tests/dropped_tagger/FILES b/vbench/src/tests/dropped_tagger/FILES
deleted file mode 100644
index 535abf7ee58..00000000000
--- a/vbench/src/tests/dropped_tagger/FILES
+++ /dev/null
@@ -1 +0,0 @@
-dropped_tagger_test.cpp
diff --git a/vbench/src/tests/handler_thread/FILES b/vbench/src/tests/handler_thread/FILES
deleted file mode 100644
index 978aa147772..00000000000
--- a/vbench/src/tests/handler_thread/FILES
+++ /dev/null
@@ -1 +0,0 @@
-handler_thread_test.cpp
diff --git a/vbench/src/tests/hex_number/FILES b/vbench/src/tests/hex_number/FILES
deleted file mode 100644
index 488979a3169..00000000000
--- a/vbench/src/tests/hex_number/FILES
+++ /dev/null
@@ -1 +0,0 @@
-hex_number_test.cpp
diff --git a/vbench/src/tests/http_client/FILES b/vbench/src/tests/http_client/FILES
deleted file mode 100644
index a89979fbcba..00000000000
--- a/vbench/src/tests/http_client/FILES
+++ /dev/null
@@ -1 +0,0 @@
-http_client_test.cpp
diff --git a/vbench/src/tests/http_connection/FILES b/vbench/src/tests/http_connection/FILES
deleted file mode 100644
index de51725c9ac..00000000000
--- a/vbench/src/tests/http_connection/FILES
+++ /dev/null
@@ -1 +0,0 @@
-http_connection_test.cpp
diff --git a/vbench/src/tests/http_connection_pool/FILES b/vbench/src/tests/http_connection_pool/FILES
deleted file mode 100644
index 1bc5c1cc463..00000000000
--- a/vbench/src/tests/http_connection_pool/FILES
+++ /dev/null
@@ -1 +0,0 @@
-http_connection_pool_test.cpp
diff --git a/vbench/src/tests/input_file_reader/FILES b/vbench/src/tests/input_file_reader/FILES
deleted file mode 100644
index 46b97e37a9d..00000000000
--- a/vbench/src/tests/input_file_reader/FILES
+++ /dev/null
@@ -1,3 +0,0 @@
-input_file_reader_test.cpp
-simple_test_input.txt
-hard_test_input.txt
diff --git a/vbench/src/tests/latency_analyzer/FILES b/vbench/src/tests/latency_analyzer/FILES
deleted file mode 100644
index 4d90bfb352d..00000000000
--- a/vbench/src/tests/latency_analyzer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-latency_analyzer_test.cpp
diff --git a/vbench/src/tests/line_reader/FILES b/vbench/src/tests/line_reader/FILES
deleted file mode 100644
index 2611646033f..00000000000
--- a/vbench/src/tests/line_reader/FILES
+++ /dev/null
@@ -1 +0,0 @@
-line_reader_test.cpp
diff --git a/vbench/src/tests/qps_analyzer/FILES b/vbench/src/tests/qps_analyzer/FILES
deleted file mode 100644
index 978efc5eafd..00000000000
--- a/vbench/src/tests/qps_analyzer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-qps_analyzer_test.cpp
diff --git a/vbench/src/tests/qps_tagger/FILES b/vbench/src/tests/qps_tagger/FILES
deleted file mode 100644
index 9fbf5764e52..00000000000
--- a/vbench/src/tests/qps_tagger/FILES
+++ /dev/null
@@ -1 +0,0 @@
-qps_tagger_test.cpp
diff --git a/vbench/src/tests/request_dumper/FILES b/vbench/src/tests/request_dumper/FILES
deleted file mode 100644
index 24fc66cc387..00000000000
--- a/vbench/src/tests/request_dumper/FILES
+++ /dev/null
@@ -1 +0,0 @@
-request_dumper_test.cpp
diff --git a/vbench/src/tests/request_generator/FILES b/vbench/src/tests/request_generator/FILES
deleted file mode 100644
index 2afbcd6ec35..00000000000
--- a/vbench/src/tests/request_generator/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-request_generator_test.cpp
-input.txt
diff --git a/vbench/src/tests/request_sink/FILES b/vbench/src/tests/request_sink/FILES
deleted file mode 100644
index 77c3c4b8273..00000000000
--- a/vbench/src/tests/request_sink/FILES
+++ /dev/null
@@ -1 +0,0 @@
-request_sink_test.cpp
diff --git a/vbench/src/tests/server_spec/FILES b/vbench/src/tests/server_spec/FILES
deleted file mode 100644
index 34e52a9f86e..00000000000
--- a/vbench/src/tests/server_spec/FILES
+++ /dev/null
@@ -1 +0,0 @@
-server_spec_test.cpp
diff --git a/vbench/src/tests/server_tagger/FILES b/vbench/src/tests/server_tagger/FILES
deleted file mode 100644
index b632f6e6916..00000000000
--- a/vbench/src/tests/server_tagger/FILES
+++ /dev/null
@@ -1 +0,0 @@
-server_tagger_test.cpp
diff --git a/vbench/src/tests/socket/FILES b/vbench/src/tests/socket/FILES
deleted file mode 100644
index d9051f5e248..00000000000
--- a/vbench/src/tests/socket/FILES
+++ /dev/null
@@ -1 +0,0 @@
-socket_test.cpp
diff --git a/vbench/src/tests/taint/FILES b/vbench/src/tests/taint/FILES
deleted file mode 100644
index 448832fd7dc..00000000000
--- a/vbench/src/tests/taint/FILES
+++ /dev/null
@@ -1 +0,0 @@
-taint_test.cpp
diff --git a/vbench/src/tests/time_queue/FILES b/vbench/src/tests/time_queue/FILES
deleted file mode 100644
index 39406e0b322..00000000000
--- a/vbench/src/tests/time_queue/FILES
+++ /dev/null
@@ -1 +0,0 @@
-time_queue_test.cpp
diff --git a/vbench/src/tests/timer/FILES b/vbench/src/tests/timer/FILES
deleted file mode 100644
index a90924ff2d1..00000000000
--- a/vbench/src/tests/timer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-timer_test.cpp
diff --git a/vdstestlib/src/tests/cppunit/DESC b/vdstestlib/src/tests/cppunit/DESC
deleted file mode 100644
index 247fc25faf0..00000000000
--- a/vdstestlib/src/tests/cppunit/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test of the CPPUNIT tools.
diff --git a/vdstestlib/src/tests/cppunit/FILES b/vdstestlib/src/tests/cppunit/FILES
deleted file mode 100644
index 468a6bfb10a..00000000000
--- a/vdstestlib/src/tests/cppunit/FILES
+++ /dev/null
@@ -1 +0,0 @@
-programoptions.cpp
diff --git a/vdstestlib/src/tests/dirconfig/DESC b/vdstestlib/src/tests/dirconfig/DESC
deleted file mode 100644
index 2a3a952a471..00000000000
--- a/vdstestlib/src/tests/dirconfig/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Tests that dirconfig class works correctly.
diff --git a/vdstestlib/src/tests/dirconfig/FILES b/vdstestlib/src/tests/dirconfig/FILES
deleted file mode 100644
index 6e94447a2bd..00000000000
--- a/vdstestlib/src/tests/dirconfig/FILES
+++ /dev/null
@@ -1 +0,0 @@
-dirconfigtest.cpp
diff --git a/vespalib/src/tests/alloc/DESC b/vespalib/src/tests/alloc/DESC
deleted file mode 100644
index 47c438e7ee9..00000000000
--- a/vespalib/src/tests/alloc/DESC
+++ /dev/null
@@ -1 +0,0 @@
-alloc test. Take a look at alloc_test.cpp for details.
diff --git a/vespalib/src/tests/alloc/FILES b/vespalib/src/tests/alloc/FILES
deleted file mode 100644
index 48c4645810d..00000000000
--- a/vespalib/src/tests/alloc/FILES
+++ /dev/null
@@ -1 +0,0 @@
-alloc_test.cpp
diff --git a/vespalib/src/tests/approx/FILES b/vespalib/src/tests/approx/FILES
deleted file mode 100644
index 75c865a7d33..00000000000
--- a/vespalib/src/tests/approx/FILES
+++ /dev/null
@@ -1 +0,0 @@
-approx_test.cpp
diff --git a/vespalib/src/tests/array/DESC b/vespalib/src/tests/array/DESC
deleted file mode 100644
index 59c59c2c50a..00000000000
--- a/vespalib/src/tests/array/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Array test. Take a look at array_test.cpp for details.
diff --git a/vespalib/src/tests/array/FILES b/vespalib/src/tests/array/FILES
deleted file mode 100644
index fa3825f832f..00000000000
--- a/vespalib/src/tests/array/FILES
+++ /dev/null
@@ -1 +0,0 @@
-array_test.cpp
diff --git a/vespalib/src/tests/arrayqueue/DESC b/vespalib/src/tests/arrayqueue/DESC
deleted file mode 100644
index a2af702fb9f..00000000000
--- a/vespalib/src/tests/arrayqueue/DESC
+++ /dev/null
@@ -1 +0,0 @@
-arrayqueue test. Take a look at arrayqueue.cpp for details.
diff --git a/vespalib/src/tests/arrayqueue/FILES b/vespalib/src/tests/arrayqueue/FILES
deleted file mode 100644
index 9d1e5634437..00000000000
--- a/vespalib/src/tests/arrayqueue/FILES
+++ /dev/null
@@ -1 +0,0 @@
-arrayqueue.cpp
diff --git a/vespalib/src/tests/barrier/FILES b/vespalib/src/tests/barrier/FILES
deleted file mode 100644
index 30cf7423b56..00000000000
--- a/vespalib/src/tests/barrier/FILES
+++ /dev/null
@@ -1 +0,0 @@
-barrier_test.cpp
diff --git a/vespalib/src/tests/box/FILES b/vespalib/src/tests/box/FILES
deleted file mode 100644
index df0cdaa9666..00000000000
--- a/vespalib/src/tests/box/FILES
+++ /dev/null
@@ -1 +0,0 @@
-box_test.cpp
diff --git a/vespalib/src/tests/component/DESC b/vespalib/src/tests/component/DESC
deleted file mode 100644
index 176a43ab3bf..00000000000
--- a/vespalib/src/tests/component/DESC
+++ /dev/null
@@ -1 +0,0 @@
-component test. Take a look at component.cpp for details.
diff --git a/vespalib/src/tests/component/FILES b/vespalib/src/tests/component/FILES
deleted file mode 100644
index bf84bdd6d20..00000000000
--- a/vespalib/src/tests/component/FILES
+++ /dev/null
@@ -1 +0,0 @@
-component.cpp
diff --git a/vespalib/src/tests/compress/DESC b/vespalib/src/tests/compress/DESC
deleted file mode 100644
index f7e01ae9c4a..00000000000
--- a/vespalib/src/tests/compress/DESC
+++ /dev/null
@@ -1 +0,0 @@
-commpress test. Take a look at commpress.cpp for details.
diff --git a/vespalib/src/tests/compress/FILES b/vespalib/src/tests/compress/FILES
deleted file mode 100644
index be7a6df2fee..00000000000
--- a/vespalib/src/tests/compress/FILES
+++ /dev/null
@@ -1 +0,0 @@
-compress_test.cpp
diff --git a/vespalib/src/tests/create-test.sh b/vespalib/src/tests/create-test.sh
deleted file mode 100755
index 297be94ef1a..00000000000
--- a/vespalib/src/tests/create-test.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-gen_project_file() {
- echo "generating '$1' ..."
- echo "APPLICATION ${test}_test" > $1
- echo "OBJS ${test}_test" >> $1
- echo "LIBS vespa/vespalib/vespalib" >> $1
- echo "EXTERNALLIBS vespalog" >> $1
- echo "" >> $1
- echo "CUSTOMMAKE" >> $1
- echo "test: all" >> $1
- echo -e "\t\$(HIDE) \$(LDL) \$(VALGRIND) ./${test}_test" >> $1
-}
-
-gen_source() {
- echo "generating '$1' ..."
- echo "#include <vespa/vespalib/testkit/test_kit.h>" > $1
- echo "" >> $1
- echo "using namespace vespalib;" >> $1
- echo "" >> $1
- echo "TEST(\"require something\") {" >> $1
- echo " EXPECT_TRUE(true);" >> $1
- echo "}" >> $1
- echo "" >> $1
- echo "TEST_MAIN() { TEST_RUN_ALL(); }" >> $1
-}
-
-gen_file_list() {
- echo "generating '$1' ..."
- echo "${test}_test.cpp" > $1
-}
-
-if [ $# -ne 1 ]; then
- echo "usage: $0 <name>"
- echo " name: name of the test to create"
- exit 1
-fi
-
-test=$1
-if [ -e $test ]; then
- echo "$test already present, don't want to mess it up..."
- exit 1
-fi
-
-echo "creating directory '$test' ..."
-mkdir -p $test || exit 1
-cd $test || exit 1
-test=`basename $test`
-
-gen_project_file fastos.project
-gen_source ${test}_test.cpp
-gen_file_list FILES
diff --git a/vespalib/src/tests/delegatelist/DESC b/vespalib/src/tests/delegatelist/DESC
deleted file mode 100644
index 35975cc86f1..00000000000
--- a/vespalib/src/tests/delegatelist/DESC
+++ /dev/null
@@ -1 +0,0 @@
-delegatelist test. Take a look at delegatelist.cpp for details.
diff --git a/vespalib/src/tests/delegatelist/FILES b/vespalib/src/tests/delegatelist/FILES
deleted file mode 100644
index 7f599b34af8..00000000000
--- a/vespalib/src/tests/delegatelist/FILES
+++ /dev/null
@@ -1 +0,0 @@
-delegatelist.cpp
diff --git a/vespalib/src/tests/dual_merge_director/FILES b/vespalib/src/tests/dual_merge_director/FILES
deleted file mode 100644
index 8beb1f1337e..00000000000
--- a/vespalib/src/tests/dual_merge_director/FILES
+++ /dev/null
@@ -1 +0,0 @@
-dual_merge_director_test.cpp
diff --git a/vespalib/src/tests/eventbarrier/DESC b/vespalib/src/tests/eventbarrier/DESC
deleted file mode 100644
index f4546e14f34..00000000000
--- a/vespalib/src/tests/eventbarrier/DESC
+++ /dev/null
@@ -1 +0,0 @@
-eventbarrier test. Take a look at eventbarrier.cpp for details.
diff --git a/vespalib/src/tests/eventbarrier/FILES b/vespalib/src/tests/eventbarrier/FILES
deleted file mode 100644
index 5b3e360da02..00000000000
--- a/vespalib/src/tests/eventbarrier/FILES
+++ /dev/null
@@ -1 +0,0 @@
-eventbarrier.cpp
diff --git a/vespalib/src/tests/exception_classes/FILES b/vespalib/src/tests/exception_classes/FILES
deleted file mode 100644
index 9a2697291f2..00000000000
--- a/vespalib/src/tests/exception_classes/FILES
+++ /dev/null
@@ -1 +0,0 @@
-exception_classes_test.cpp
diff --git a/vespalib/src/tests/executor/DESC b/vespalib/src/tests/executor/DESC
deleted file mode 100644
index 814694d4c20..00000000000
--- a/vespalib/src/tests/executor/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Tests code used to run tasks concurrently in multiple threads.
diff --git a/vespalib/src/tests/executor/FILES b/vespalib/src/tests/executor/FILES
deleted file mode 100644
index 5081bfe8ce0..00000000000
--- a/vespalib/src/tests/executor/FILES
+++ /dev/null
@@ -1,4 +0,0 @@
-threadstackexecutor_test.cpp
-executor_test.cpp
-stress_test.cpp
-blockingthreadstackexecutor_test.cpp
diff --git a/vespalib/src/tests/explore_modern_cpp/FILES b/vespalib/src/tests/explore_modern_cpp/FILES
deleted file mode 100644
index e5522821b16..00000000000
--- a/vespalib/src/tests/explore_modern_cpp/FILES
+++ /dev/null
@@ -1 +0,0 @@
-explore_modern_cpp_test.cpp
diff --git a/vespalib/src/tests/false/DESC b/vespalib/src/tests/false/DESC
deleted file mode 100644
index 8c53ee33b94..00000000000
--- a/vespalib/src/tests/false/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test that always fails. May also be used as template for new tests.
diff --git a/vespalib/src/tests/false/FILES b/vespalib/src/tests/false/FILES
deleted file mode 100644
index 0b9cc9b4ef7..00000000000
--- a/vespalib/src/tests/false/FILES
+++ /dev/null
@@ -1 +0,0 @@
-false.cpp
diff --git a/vespalib/src/tests/fiddle/FILES b/vespalib/src/tests/fiddle/FILES
deleted file mode 100644
index 7f508ef8058..00000000000
--- a/vespalib/src/tests/fiddle/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fiddle_test.cpp
diff --git a/vespalib/src/tests/gencnt/DESC b/vespalib/src/tests/gencnt/DESC
deleted file mode 100644
index 6cdaa76b812..00000000000
--- a/vespalib/src/tests/gencnt/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test GenCnt class. This class is used to hold a generation count and
-also to do some common calculations on it.
diff --git a/vespalib/src/tests/gencnt/FILES b/vespalib/src/tests/gencnt/FILES
deleted file mode 100644
index de6ec5596e1..00000000000
--- a/vespalib/src/tests/gencnt/FILES
+++ /dev/null
@@ -1 +0,0 @@
-gencnt.cpp
diff --git a/vespalib/src/tests/guard/DESC b/vespalib/src/tests/guard/DESC
deleted file mode 100644
index 2c56a9e5a08..00000000000
--- a/vespalib/src/tests/guard/DESC
+++ /dev/null
@@ -1 +0,0 @@
-guard test. Take a look at guard.cpp for details.
diff --git a/vespalib/src/tests/guard/FILES b/vespalib/src/tests/guard/FILES
deleted file mode 100644
index 8930baccba7..00000000000
--- a/vespalib/src/tests/guard/FILES
+++ /dev/null
@@ -1 +0,0 @@
-guard.cpp
diff --git a/vespalib/src/tests/host_name/FILES b/vespalib/src/tests/host_name/FILES
deleted file mode 100644
index c50f9ecf0be..00000000000
--- a/vespalib/src/tests/host_name/FILES
+++ /dev/null
@@ -1 +0,0 @@
-host_name_test.cpp
diff --git a/vespalib/src/tests/io/fileutil/DESC b/vespalib/src/tests/io/fileutil/DESC
deleted file mode 100644
index b3a05049161..00000000000
--- a/vespalib/src/tests/io/fileutil/DESC
+++ /dev/null
@@ -1 +0,0 @@
-File utilities test
diff --git a/vespalib/src/tests/io/fileutil/FILES b/vespalib/src/tests/io/fileutil/FILES
deleted file mode 100644
index 99d2eae90c6..00000000000
--- a/vespalib/src/tests/io/fileutil/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fileutiltest.cpp
diff --git a/vespalib/src/tests/left_right_heap/FILES b/vespalib/src/tests/left_right_heap/FILES
deleted file mode 100644
index dee371c815c..00000000000
--- a/vespalib/src/tests/left_right_heap/FILES
+++ /dev/null
@@ -1 +0,0 @@
-left_right_heap_test.cpp
diff --git a/vespalib/src/tests/make_fixture_macros/FILES b/vespalib/src/tests/make_fixture_macros/FILES
deleted file mode 100644
index 0af18af5a8b..00000000000
--- a/vespalib/src/tests/make_fixture_macros/FILES
+++ /dev/null
@@ -1 +0,0 @@
-make_fixture_macros_test.cpp
diff --git a/vespalib/src/tests/memory/DESC b/vespalib/src/tests/memory/DESC
deleted file mode 100644
index 1fc0b7c745d..00000000000
--- a/vespalib/src/tests/memory/DESC
+++ /dev/null
@@ -1 +0,0 @@
-memory test. Take a look at memory.cpp for details.
diff --git a/vespalib/src/tests/memory/FILES b/vespalib/src/tests/memory/FILES
deleted file mode 100644
index 16422d07c7b..00000000000
--- a/vespalib/src/tests/memory/FILES
+++ /dev/null
@@ -1 +0,0 @@
-memory.cpp
diff --git a/vespalib/src/tests/net/tls/openssl_impl/openssl_impl_test.cpp b/vespalib/src/tests/net/tls/openssl_impl/openssl_impl_test.cpp
index 1d1520c64e0..8ee10deead1 100644
--- a/vespalib/src/tests/net/tls/openssl_impl/openssl_impl_test.cpp
+++ b/vespalib/src/tests/net/tls/openssl_impl/openssl_impl_test.cpp
@@ -34,6 +34,7 @@ const char* hs_state_to_str(HandshakeResult::State state) noexcept {
case HandshakeResult::State::Failed: return "Broken";
case HandshakeResult::State::Done: return "Done";
case HandshakeResult::State::NeedsMorePeerData: return "NeedsMorePeerData";
+ case HandshakeResult::State::NeedsWork: return "NeedsWork";
}
abort();
}
@@ -183,14 +184,24 @@ struct Fixture {
return hs_result;
}
+ void do_handshake_work(CryptoCodec& codec) {
+ codec.do_handshake_work();
+ }
+
bool handshake() {
HandshakeResult cli_res;
HandshakeResult serv_res;
while (!(cli_res.done() && serv_res.done())) {
- cli_res = do_handshake(*client, server_to_client, client_to_server);
- serv_res = do_handshake(*server, client_to_server, server_to_client);
- print_handshake_result("client", cli_res);
- print_handshake_result("server", serv_res);
+ while ((cli_res = do_handshake(*client, server_to_client, client_to_server)).needs_work()) {
+ fprintf(stderr, "doing client handshake work\n");
+ do_handshake_work(*client);
+ }
+ print_handshake_result("client handshake()", cli_res);
+ while ((serv_res = do_handshake(*server, client_to_server, server_to_client)).needs_work()) {
+ fprintf(stderr, "doing server handshake work\n");
+ do_handshake_work(*server);
+ }
+ print_handshake_result("server handshake()", serv_res);
if (cli_res.failed() || serv_res.failed()) {
return false;
@@ -207,6 +218,21 @@ TEST_F("client and server can complete handshake", Fixture) {
EXPECT_TRUE(f.handshake());
}
+TEST_F("client handshake() initially returns NeedsWork without producing anything", Fixture) {
+ auto res = f.do_handshake(*f.client, f.server_to_client, f.client_to_server);
+ EXPECT_TRUE(res.needs_work());
+ EXPECT_EQUAL(0u, res.bytes_consumed);
+ EXPECT_EQUAL(0u, res.bytes_produced);
+}
+
+TEST_F("server handshake() returns NeedsPeerData with empty input", Fixture) {
+ auto res = f.do_handshake(*f.server, f.client_to_server, f.server_to_client);
+ EXPECT_EQUAL(static_cast<int>(HandshakeResult::State::NeedsMorePeerData),
+ static_cast<int>(res.state));
+ EXPECT_EQUAL(0u, res.bytes_consumed);
+ EXPECT_EQUAL(0u, res.bytes_produced);
+}
+
TEST_F("clients and servers can send single data frame after handshake (not full duplex)", Fixture) {
ASSERT_TRUE(f.handshake());
diff --git a/vespalib/src/tests/objects/nbostream/FILES b/vespalib/src/tests/objects/nbostream/FILES
deleted file mode 100644
index f4bf7a20446..00000000000
--- a/vespalib/src/tests/objects/nbostream/FILES
+++ /dev/null
@@ -1 +0,0 @@
-nbostream_test.cpp
diff --git a/vespalib/src/tests/optimized/DESC b/vespalib/src/tests/optimized/DESC
deleted file mode 100644
index 6e779e1f14b..00000000000
--- a/vespalib/src/tests/optimized/DESC
+++ /dev/null
@@ -1 +0,0 @@
-cpu special instructions test. Take a look at optimized_test.cpp for details.
diff --git a/vespalib/src/tests/optimized/FILES b/vespalib/src/tests/optimized/FILES
deleted file mode 100644
index 737e0d26970..00000000000
--- a/vespalib/src/tests/optimized/FILES
+++ /dev/null
@@ -1 +0,0 @@
-optimized_test.cpp
diff --git a/vespalib/src/tests/printable/DESC b/vespalib/src/tests/printable/DESC
deleted file mode 100644
index a31bafc527f..00000000000
--- a/vespalib/src/tests/printable/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit test for the Printable class
diff --git a/vespalib/src/tests/printable/FILES b/vespalib/src/tests/printable/FILES
deleted file mode 100644
index a3f259414b5..00000000000
--- a/vespalib/src/tests/printable/FILES
+++ /dev/null
@@ -1 +0,0 @@
-printabletest.cpp
diff --git a/vespalib/src/tests/priority_queue/DESC b/vespalib/src/tests/priority_queue/DESC
deleted file mode 100644
index 23ea3c779f5..00000000000
--- a/vespalib/src/tests/priority_queue/DESC
+++ /dev/null
@@ -1 +0,0 @@
-priority_queue test. Take a look at priority_queue.cpp for details.
diff --git a/vespalib/src/tests/priority_queue/FILES b/vespalib/src/tests/priority_queue/FILES
deleted file mode 100644
index b5330f1a28a..00000000000
--- a/vespalib/src/tests/priority_queue/FILES
+++ /dev/null
@@ -1 +0,0 @@
-priority_queue.cpp
diff --git a/vespalib/src/tests/random/DESC b/vespalib/src/tests/random/DESC
deleted file mode 100644
index d537e371951..00000000000
--- a/vespalib/src/tests/random/DESC
+++ /dev/null
@@ -1 +0,0 @@
-random test. Take a look at random.cpp for details.
diff --git a/vespalib/src/tests/random/FILES b/vespalib/src/tests/random/FILES
deleted file mode 100644
index cf5d85ad45a..00000000000
--- a/vespalib/src/tests/random/FILES
+++ /dev/null
@@ -1 +0,0 @@
-random.cpp
diff --git a/vespalib/src/tests/referencecounter/DESC b/vespalib/src/tests/referencecounter/DESC
deleted file mode 100644
index 02cd2640474..00000000000
--- a/vespalib/src/tests/referencecounter/DESC
+++ /dev/null
@@ -1 +0,0 @@
-referencecounter test. Take a look at referencecounter.cpp for details.
diff --git a/vespalib/src/tests/referencecounter/FILES b/vespalib/src/tests/referencecounter/FILES
deleted file mode 100644
index 1a7fbcaed46..00000000000
--- a/vespalib/src/tests/referencecounter/FILES
+++ /dev/null
@@ -1 +0,0 @@
-referencecounter.cpp
diff --git a/vespalib/src/tests/regex/DESC b/vespalib/src/tests/regex/DESC
deleted file mode 100644
index dee3f1700f3..00000000000
--- a/vespalib/src/tests/regex/DESC
+++ /dev/null
@@ -1 +0,0 @@
-regex test. Take a look at regex.cpp for details.
diff --git a/vespalib/src/tests/regex/FILES b/vespalib/src/tests/regex/FILES
deleted file mode 100644
index 62223684cbd..00000000000
--- a/vespalib/src/tests/regex/FILES
+++ /dev/null
@@ -1 +0,0 @@
-regex.cpp
diff --git a/vespalib/src/tests/rendezvous/FILES b/vespalib/src/tests/rendezvous/FILES
deleted file mode 100644
index 900f67d7d89..00000000000
--- a/vespalib/src/tests/rendezvous/FILES
+++ /dev/null
@@ -1 +0,0 @@
-rendezvous_test.cpp
diff --git a/vespalib/src/tests/runnable_pair/FILES b/vespalib/src/tests/runnable_pair/FILES
deleted file mode 100644
index 42c0ee819df..00000000000
--- a/vespalib/src/tests/runnable_pair/FILES
+++ /dev/null
@@ -1 +0,0 @@
-runnable_pair_test.cpp
diff --git a/vespalib/src/tests/rwlock/DESC b/vespalib/src/tests/rwlock/DESC
deleted file mode 100644
index c7ab74fdc6e..00000000000
--- a/vespalib/src/tests/rwlock/DESC
+++ /dev/null
@@ -1 +0,0 @@
-rwlock test. Take a look at rwlock.cpp for details.
diff --git a/vespalib/src/tests/rwlock/FILES b/vespalib/src/tests/rwlock/FILES
deleted file mode 100644
index 60b69a08e68..00000000000
--- a/vespalib/src/tests/rwlock/FILES
+++ /dev/null
@@ -1 +0,0 @@
-rwlock.cpp
diff --git a/vespalib/src/tests/sha1/FILES b/vespalib/src/tests/sha1/FILES
deleted file mode 100644
index bf07d3ff3ee..00000000000
--- a/vespalib/src/tests/sha1/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sha1_test.cpp
diff --git a/vespalib/src/tests/sharedptr/DESC b/vespalib/src/tests/sharedptr/DESC
deleted file mode 100644
index 5129ce86f79..00000000000
--- a/vespalib/src/tests/sharedptr/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for the SharedPtr and PtrHolder classes.
diff --git a/vespalib/src/tests/sharedptr/FILES b/vespalib/src/tests/sharedptr/FILES
deleted file mode 100644
index 89a2ce9cf56..00000000000
--- a/vespalib/src/tests/sharedptr/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-sharedptr.cpp
-ptrholder.cpp
diff --git a/vespalib/src/tests/signalhandler/DESC b/vespalib/src/tests/signalhandler/DESC
deleted file mode 100644
index 72cddf8a8f2..00000000000
--- a/vespalib/src/tests/signalhandler/DESC
+++ /dev/null
@@ -1 +0,0 @@
-signalhandler test. Take a look at signalhandler.cpp for details.
diff --git a/vespalib/src/tests/signalhandler/FILES b/vespalib/src/tests/signalhandler/FILES
deleted file mode 100644
index 85c709cf5ac..00000000000
--- a/vespalib/src/tests/signalhandler/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-signalhandler.cpp
-victim.cpp
diff --git a/vespalib/src/tests/simple_thread_bundle/FILES b/vespalib/src/tests/simple_thread_bundle/FILES
deleted file mode 100644
index 30283546a27..00000000000
--- a/vespalib/src/tests/simple_thread_bundle/FILES
+++ /dev/null
@@ -1 +0,0 @@
-simple_thread_bundle_test.cpp
diff --git a/vespalib/src/tests/slaveproc/DESC b/vespalib/src/tests/slaveproc/DESC
deleted file mode 100644
index 42f92a9e42e..00000000000
--- a/vespalib/src/tests/slaveproc/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-Test the SlaveProc class, a wrapper for FastOS_Process that simplifies
-writing to stdin and reading from stdout of sub-processes.
diff --git a/vespalib/src/tests/slaveproc/FILES b/vespalib/src/tests/slaveproc/FILES
deleted file mode 100644
index f2c61607b2d..00000000000
--- a/vespalib/src/tests/slaveproc/FILES
+++ /dev/null
@@ -1 +0,0 @@
-slaveproc.cpp
diff --git a/vespalib/src/tests/slime/DESC b/vespalib/src/tests/slime/DESC
deleted file mode 100644
index 48fe1f035d5..00000000000
--- a/vespalib/src/tests/slime/DESC
+++ /dev/null
@@ -1 +0,0 @@
-slime test. Take a look at slime_test.cpp for details.
diff --git a/vespalib/src/tests/slime/FILES b/vespalib/src/tests/slime/FILES
deleted file mode 100644
index 2c6542104c4..00000000000
--- a/vespalib/src/tests/slime/FILES
+++ /dev/null
@@ -1 +0,0 @@
-slime.cpp
diff --git a/vespalib/src/tests/slime/summary-feature-benchmark/FILES b/vespalib/src/tests/slime/summary-feature-benchmark/FILES
deleted file mode 100644
index 1b4c570c614..00000000000
--- a/vespalib/src/tests/slime/summary-feature-benchmark/FILES
+++ /dev/null
@@ -1 +0,0 @@
-summary-feature-benchmark.cpp
diff --git a/vespalib/src/tests/stash/DESC b/vespalib/src/tests/stash/DESC
deleted file mode 100644
index d947e0b1c4f..00000000000
--- a/vespalib/src/tests/stash/DESC
+++ /dev/null
@@ -1 +0,0 @@
-stash test. Take a look at stash.cpp for details.
diff --git a/vespalib/src/tests/stash/FILES b/vespalib/src/tests/stash/FILES
deleted file mode 100644
index 0c295c0f048..00000000000
--- a/vespalib/src/tests/stash/FILES
+++ /dev/null
@@ -1 +0,0 @@
-stash.cpp
diff --git a/vespalib/src/tests/stllike/DESC b/vespalib/src/tests/stllike/DESC
deleted file mode 100644
index dab62790af5..00000000000
--- a/vespalib/src/tests/stllike/DESC
+++ /dev/null
@@ -1,2 +0,0 @@
-string test. Take a look at string.cpp for details.
-asciistream test. Take a look at asciistream.cpp for details.
diff --git a/vespalib/src/tests/stllike/FILES b/vespalib/src/tests/stllike/FILES
deleted file mode 100644
index 24baf8f9baa..00000000000
--- a/vespalib/src/tests/stllike/FILES
+++ /dev/null
@@ -1,2 +0,0 @@
-string.cpp
-asciistream.cpp
diff --git a/vespalib/src/tests/stringfmt/DESC b/vespalib/src/tests/stringfmt/DESC
deleted file mode 100644
index 12428e4bff6..00000000000
--- a/vespalib/src/tests/stringfmt/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for the StringFmt class.
diff --git a/vespalib/src/tests/stringfmt/FILES b/vespalib/src/tests/stringfmt/FILES
deleted file mode 100644
index 1f1161422a0..00000000000
--- a/vespalib/src/tests/stringfmt/FILES
+++ /dev/null
@@ -1 +0,0 @@
-fmt.cpp
diff --git a/vespalib/src/tests/sync/DESC b/vespalib/src/tests/sync/DESC
deleted file mode 100644
index 82fc5b4dd36..00000000000
--- a/vespalib/src/tests/sync/DESC
+++ /dev/null
@@ -1 +0,0 @@
-sync test. Take a look at sync.cpp for details.
diff --git a/vespalib/src/tests/sync/FILES b/vespalib/src/tests/sync/FILES
deleted file mode 100644
index 57472ad6c2b..00000000000
--- a/vespalib/src/tests/sync/FILES
+++ /dev/null
@@ -1 +0,0 @@
-sync.cpp
diff --git a/vespalib/src/tests/systemstate/DESC b/vespalib/src/tests/systemstate/DESC
deleted file mode 100644
index 7b0e778ea7c..00000000000
--- a/vespalib/src/tests/systemstate/DESC
+++ /dev/null
@@ -1 +0,0 @@
-systemstate test. Take a look at systemstate.cpp for details.
diff --git a/vespalib/src/tests/systemstate/FILES b/vespalib/src/tests/systemstate/FILES
deleted file mode 100644
index e1d0e026d31..00000000000
--- a/vespalib/src/tests/systemstate/FILES
+++ /dev/null
@@ -1 +0,0 @@
-systemstate.cpp
diff --git a/vespalib/src/tests/testapp-debug/DESC b/vespalib/src/tests/testapp-debug/DESC
deleted file mode 100644
index 5e09bd953cb..00000000000
--- a/vespalib/src/tests/testapp-debug/DESC
+++ /dev/null
@@ -1 +0,0 @@
-testapp-debug test. Take a look at testapp-debug.cpp for details.
diff --git a/vespalib/src/tests/testapp-debug/FILES b/vespalib/src/tests/testapp-debug/FILES
deleted file mode 100644
index 999e0707bf0..00000000000
--- a/vespalib/src/tests/testapp-debug/FILES
+++ /dev/null
@@ -1 +0,0 @@
-testapp-debug.cpp
diff --git a/vespalib/src/tests/testapp-generic/DESC b/vespalib/src/tests/testapp-generic/DESC
deleted file mode 100644
index a4448179841..00000000000
--- a/vespalib/src/tests/testapp-generic/DESC
+++ /dev/null
@@ -1 +0,0 @@
-testapp-generic test. Take a look at testapp-generic.cpp for details.
diff --git a/vespalib/src/tests/testapp-generic/FILES b/vespalib/src/tests/testapp-generic/FILES
deleted file mode 100644
index ad8ea50bc6e..00000000000
--- a/vespalib/src/tests/testapp-generic/FILES
+++ /dev/null
@@ -1 +0,0 @@
-testapp-generic.cpp
diff --git a/vespalib/src/tests/testapp-main/FILES b/vespalib/src/tests/testapp-main/FILES
deleted file mode 100644
index 28abdbd9e18..00000000000
--- a/vespalib/src/tests/testapp-main/FILES
+++ /dev/null
@@ -1 +0,0 @@
-testapp-main_test.cpp
diff --git a/vespalib/src/tests/testapp-state/DESC b/vespalib/src/tests/testapp-state/DESC
deleted file mode 100644
index 3f29b94f72d..00000000000
--- a/vespalib/src/tests/testapp-state/DESC
+++ /dev/null
@@ -1 +0,0 @@
-testapp-state test. Take a look at testapp-state.cpp for details.
diff --git a/vespalib/src/tests/testapp-state/FILES b/vespalib/src/tests/testapp-state/FILES
deleted file mode 100644
index ef2eb9303fc..00000000000
--- a/vespalib/src/tests/testapp-state/FILES
+++ /dev/null
@@ -1 +0,0 @@
-testapp-state.cpp
diff --git a/vespalib/src/tests/testkit-mt/FILES b/vespalib/src/tests/testkit-mt/FILES
deleted file mode 100644
index c351aaf9e79..00000000000
--- a/vespalib/src/tests/testkit-mt/FILES
+++ /dev/null
@@ -1 +0,0 @@
-testkit-mt_test.cpp
diff --git a/vespalib/src/tests/testkit-subset/FILES b/vespalib/src/tests/testkit-subset/FILES
deleted file mode 100644
index 225ad2ae56c..00000000000
--- a/vespalib/src/tests/testkit-subset/FILES
+++ /dev/null
@@ -1,4 +0,0 @@
-testkit-subset_test.cpp
-testkit-subset_extra.cpp
-out.txt
-out.ref.txt
diff --git a/vespalib/src/tests/testkit-testhook/DESC b/vespalib/src/tests/testkit-testhook/DESC
deleted file mode 100644
index 5b6987a8361..00000000000
--- a/vespalib/src/tests/testkit-testhook/DESC
+++ /dev/null
@@ -1 +0,0 @@
-testkit-testcase test. Take a look at testkit-testcase_test.cpp for details.
diff --git a/vespalib/src/tests/testkit-testhook/FILES b/vespalib/src/tests/testkit-testhook/FILES
deleted file mode 100644
index ee54954c392..00000000000
--- a/vespalib/src/tests/testkit-testhook/FILES
+++ /dev/null
@@ -1 +0,0 @@
-testkit-testcase_test.cpp
diff --git a/vespalib/src/tests/text/lowercase/DESC b/vespalib/src/tests/text/lowercase/DESC
deleted file mode 100644
index e277112f112..00000000000
--- a/vespalib/src/tests/text/lowercase/DESC
+++ /dev/null
@@ -1 +0,0 @@
-lowercase test. Take a look at lowercase_test.cpp for details.
diff --git a/vespalib/src/tests/text/lowercase/FILES b/vespalib/src/tests/text/lowercase/FILES
deleted file mode 100644
index 418ce2dc5f5..00000000000
--- a/vespalib/src/tests/text/lowercase/FILES
+++ /dev/null
@@ -1 +0,0 @@
-lowercase_test.cpp
diff --git a/vespalib/src/tests/text/stringtokenizer/DESC b/vespalib/src/tests/text/stringtokenizer/DESC
deleted file mode 100644
index 0d680dfedf4..00000000000
--- a/vespalib/src/tests/text/stringtokenizer/DESC
+++ /dev/null
@@ -1 +0,0 @@
-stringtokenizer test. Take a look at stringtokenizer.cpp for details.
diff --git a/vespalib/src/tests/text/stringtokenizer/FILES b/vespalib/src/tests/text/stringtokenizer/FILES
deleted file mode 100644
index a40dd2d8811..00000000000
--- a/vespalib/src/tests/text/stringtokenizer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-stringtokenizer.cpp
diff --git a/vespalib/src/tests/text/utf8/DESC b/vespalib/src/tests/text/utf8/DESC
deleted file mode 100644
index 941b9d7292d..00000000000
--- a/vespalib/src/tests/text/utf8/DESC
+++ /dev/null
@@ -1 +0,0 @@
-utf8 test. Take a look at utf8_test.cpp for details.
diff --git a/vespalib/src/tests/text/utf8/FILES b/vespalib/src/tests/text/utf8/FILES
deleted file mode 100644
index df9e000c979..00000000000
--- a/vespalib/src/tests/text/utf8/FILES
+++ /dev/null
@@ -1 +0,0 @@
-utf8_test.cpp
diff --git a/vespalib/src/tests/thread/FILES b/vespalib/src/tests/thread/FILES
deleted file mode 100644
index 9c62d0111c5..00000000000
--- a/vespalib/src/tests/thread/FILES
+++ /dev/null
@@ -1 +0,0 @@
-thread_test.cpp
diff --git a/vespalib/src/tests/time_tracker/FILES b/vespalib/src/tests/time_tracker/FILES
deleted file mode 100644
index dba9cab3217..00000000000
--- a/vespalib/src/tests/time_tracker/FILES
+++ /dev/null
@@ -1 +0,0 @@
-time_tracker_test.cpp
diff --git a/vespalib/src/tests/trace/DESC b/vespalib/src/tests/trace/DESC
deleted file mode 100644
index 452e75aefea..00000000000
--- a/vespalib/src/tests/trace/DESC
+++ /dev/null
@@ -1 +0,0 @@
-trace test. Take a look at trace.cpp for details.
diff --git a/vespalib/src/tests/trace/FILES b/vespalib/src/tests/trace/FILES
deleted file mode 100644
index 9a32b13b6f3..00000000000
--- a/vespalib/src/tests/trace/FILES
+++ /dev/null
@@ -1 +0,0 @@
-trace.cpp
diff --git a/vespalib/src/tests/traits/FILES b/vespalib/src/tests/traits/FILES
deleted file mode 100644
index 746da2f95ea..00000000000
--- a/vespalib/src/tests/traits/FILES
+++ /dev/null
@@ -1 +0,0 @@
-traits_test.cpp
diff --git a/vespalib/src/tests/true/DESC b/vespalib/src/tests/true/DESC
deleted file mode 100644
index 646e1020a6c..00000000000
--- a/vespalib/src/tests/true/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test that always passes. May also be used as template for new tests.
diff --git a/vespalib/src/tests/true/FILES b/vespalib/src/tests/true/FILES
deleted file mode 100644
index 7d324c5824d..00000000000
--- a/vespalib/src/tests/true/FILES
+++ /dev/null
@@ -1 +0,0 @@
-true.cpp
diff --git a/vespalib/src/tests/util/generationhandler/DESC b/vespalib/src/tests/util/generationhandler/DESC
deleted file mode 100644
index 5b4befa2c15..00000000000
--- a/vespalib/src/tests/util/generationhandler/DESC
+++ /dev/null
@@ -1 +0,0 @@
-generationhandler test. Take a look at generationhandler_test.cpp for details.
diff --git a/vespalib/src/tests/util/generationhandler/FILES b/vespalib/src/tests/util/generationhandler/FILES
deleted file mode 100644
index 07c356893a5..00000000000
--- a/vespalib/src/tests/util/generationhandler/FILES
+++ /dev/null
@@ -1 +0,0 @@
-generationhandler_test.cpp
diff --git a/vespalib/src/tests/util/generationhandler_stress/DESC b/vespalib/src/tests/util/generationhandler_stress/DESC
deleted file mode 100644
index 18f577aa095..00000000000
--- a/vespalib/src/tests/util/generationhandler_stress/DESC
+++ /dev/null
@@ -1 +0,0 @@
-GenerationHandler stress test. Take a look at generation_handler_stress_test.cpp for details.
diff --git a/vespalib/src/tests/util/generationhandler_stress/FILES b/vespalib/src/tests/util/generationhandler_stress/FILES
deleted file mode 100644
index 9c60622e3e9..00000000000
--- a/vespalib/src/tests/util/generationhandler_stress/FILES
+++ /dev/null
@@ -1 +0,0 @@
-generation_handler_stress_test.cpp
diff --git a/vespalib/src/tests/valgrind/DESC b/vespalib/src/tests/valgrind/DESC
deleted file mode 100644
index fdaf253ad9d..00000000000
--- a/vespalib/src/tests/valgrind/DESC
+++ /dev/null
@@ -1 +0,0 @@
-valgrind test. Take a look at valgrind.cpp for details.
diff --git a/vespalib/src/tests/valgrind/FILES b/vespalib/src/tests/valgrind/FILES
deleted file mode 100644
index c1ecefffc5a..00000000000
--- a/vespalib/src/tests/valgrind/FILES
+++ /dev/null
@@ -1 +0,0 @@
-valgrind.cpp
diff --git a/vespalib/src/tests/websocket/FILES b/vespalib/src/tests/websocket/FILES
deleted file mode 100644
index b3d0cb52dee..00000000000
--- a/vespalib/src/tests/websocket/FILES
+++ /dev/null
@@ -1 +0,0 @@
-websocket_test.cpp
diff --git a/vespalib/src/tests/zcurve/DESC b/vespalib/src/tests/zcurve/DESC
deleted file mode 100644
index e47e3fb171e..00000000000
--- a/vespalib/src/tests/zcurve/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a test for the ZCurve class.
diff --git a/vespalib/src/tests/zcurve/FILES b/vespalib/src/tests/zcurve/FILES
deleted file mode 100644
index 715d2c9dedb..00000000000
--- a/vespalib/src/tests/zcurve/FILES
+++ /dev/null
@@ -1 +0,0 @@
-zcurve.cpp
diff --git a/vespalib/src/vespa/vespalib/net/tls/crypto_codec.h b/vespalib/src/vespa/vespalib/net/tls/crypto_codec.h
index 1eed1ae0612..fc5303dbc5b 100644
--- a/vespalib/src/vespa/vespalib/net/tls/crypto_codec.h
+++ b/vespalib/src/vespa/vespalib/net/tls/crypto_codec.h
@@ -13,12 +13,14 @@ struct HandshakeResult {
enum class State {
Failed,
Done,
- NeedsMorePeerData
+ NeedsMorePeerData,
+ NeedsWork
};
State state = State::Failed;
bool failed() const noexcept { return (state == State::Failed); }
bool done() const noexcept { return (state == State::Done); }
+ bool needs_work() const noexcept { return (state == State::NeedsWork); }
};
struct EncodeResult {
@@ -76,14 +78,56 @@ public:
virtual size_t min_decode_buffer_size() const noexcept = 0;
/*
+ * Initiates or progresses a handshake towards a peer. Guaranteed to be lightweight
+ * in the sense that it will not perform any CPU-heavy operations by itself. When
+ * handshaking requires more heavy lifting (such as cryptographic operations), handshake()
+ * will return a result with needs_work() == true. When this is the case, the caller
+ * must call do_handshake_work() before retrying handshake() again. At that point,
+ * handshake() will return the result of the CPU-heavy work (which MAY itself be
+ * needs_work() again).
+ *
+ * Basic call flow:
+ *
+ * handshake() --> needs_work() ----.
+ * ^ |
+ * | |
+ * `---- do_handshake_work() <---' (possibly in different thread)
+ *
* Precondition: to_peer_buf_size >= min_encode_buffer_size()
- * Postcondition: if result.done(), the handshake process has completed
+ *
+ * The handshake() <-> do_handshake_work() flow invariant must hold.
+ *
+ * Postcondition: If result.done(), the handshake process has completed
* and data may be passed through encode()/decode().
+ *
+ * If result.needs_work(), do_handshake_work() MUST be called prior
+ * to calling handshake() again. The next time handshake() is called,
+ * it will return the result of the work performed as part of
+ * do_handshake_work(). The from/to buffers MUST remain valid and
+ * stable until do_handshake_work() is called.
+ *
+ * If result.needs_work() it is guaranteed that zero bytes have been
+ * consumed from the from_peer buffer or produced to the to_peer buffer.
*/
virtual HandshakeResult handshake(const char* from_peer, size_t from_peer_buf_size,
char* to_peer, size_t to_peer_buf_size) noexcept = 0;
/*
+ * Perform any CPU-heavy handshake operations that have been initiated by handshake().
+ *
+ * MAY be called from a different thread than handshake() as long as caller guarantees
+ * external synchronization between the threads. MUST NOT be called concurrently with
+ * handshake() on the same instance.
+ *
+ * Precondition: handshake() has been called immediately prior on this instance with
+ * a result of needs_work()
+ * do_handshake_work() has NOT been called immediately prior on this instance.
+ * Postcondition: The next call to handshake() on this instance will return the result
+ * of the handshake work performed.
+ */
+ virtual void do_handshake_work() noexcept = 0;
+
+ /*
* Encodes a single ciphertext frame into `ciphertext`. If plaintext_size
* is greater than can fit into a frame, the returned result's consumed_bytes
* field will be < plaintext_size. The number of actual ciphertext bytes produced
diff --git a/vespalib/src/vespa/vespalib/net/tls/crypto_codec_adapter.cpp b/vespalib/src/vespa/vespalib/net/tls/crypto_codec_adapter.cpp
index d8ee3ea89ab..46c3e2d3195 100644
--- a/vespalib/src/vespa/vespalib/net/tls/crypto_codec_adapter.cpp
+++ b/vespalib/src/vespa/vespalib/net/tls/crypto_codec_adapter.cpp
@@ -72,12 +72,16 @@ CryptoCodecAdapter::handshake()
for (;;) {
auto in = _input.obtain();
auto out = _output.reserve(_codec->min_encode_buffer_size());
- auto hs_res = _codec->handshake(in.data, in.size, out.data, out.size);
+ ::vespalib::net::tls::HandshakeResult hs_res;
+ while ((hs_res = _codec->handshake(in.data, in.size, out.data, out.size)).needs_work()) {
+ _codec->do_handshake_work();
+ }
_input.evict(hs_res.bytes_consumed);
_output.commit(hs_res.bytes_produced);
switch (hs_res.state) {
case ::vespalib::net::tls::HandshakeResult::State::Failed: return HandshakeResult::FAIL;
case ::vespalib::net::tls::HandshakeResult::State::Done: return hs_try_flush();
+ case ::vespalib::net::tls::HandshakeResult::State::NeedsWork: abort(); // Impossible
case ::vespalib::net::tls::HandshakeResult::State::NeedsMorePeerData:
auto flush_res = hs_try_flush();
if (flush_res != HandshakeResult::DONE) {
diff --git a/vespalib/src/vespa/vespalib/net/tls/impl/openssl_crypto_codec_impl.cpp b/vespalib/src/vespa/vespalib/net/tls/impl/openssl_crypto_codec_impl.cpp
index e8b1e32213d..3049c02b798 100644
--- a/vespalib/src/vespa/vespalib/net/tls/impl/openssl_crypto_codec_impl.cpp
+++ b/vespalib/src/vespa/vespalib/net/tls/impl/openssl_crypto_codec_impl.cpp
@@ -97,6 +97,14 @@ HandshakeResult handshake_completed() noexcept {
return {0, 0, HandshakeResult::State::Done};
}
+HandshakeResult handshake_needs_work() noexcept {
+ return {0, 0, HandshakeResult::State::NeedsWork};
+}
+
+HandshakeResult handshake_needs_peer_data() noexcept {
+ return {0, 0, HandshakeResult::State::NeedsMorePeerData};
+}
+
HandshakeResult handshake_failed() noexcept {
return {0, 0, HandshakeResult::State::Failed};
}
@@ -161,7 +169,9 @@ void log_ssl_error(const char* source, int ssl_error) {
OpenSslCryptoCodecImpl::OpenSslCryptoCodecImpl(std::shared_ptr<OpenSslTlsContextImpl> ctx, Mode mode)
: _ctx(std::move(ctx)),
_ssl(::SSL_new(_ctx->native_context())),
- _mode(mode)
+ _mode(mode),
+ _deferred_handshake_params(),
+ _deferred_handshake_result()
{
if (!_ssl) {
throw CryptoException("Failed to create new SSL from SSL_CTX");
@@ -208,27 +218,62 @@ OpenSslCryptoCodecImpl::OpenSslCryptoCodecImpl(std::shared_ptr<OpenSslTlsContext
OpenSslCryptoCodecImpl::~OpenSslCryptoCodecImpl() = default;
-// TODO remove spammy logging once code is stable
-
HandshakeResult OpenSslCryptoCodecImpl::handshake(const char* from_peer, size_t from_peer_buf_size,
- char* to_peer, size_t to_peer_buf_size) noexcept {
+ char* to_peer, size_t to_peer_buf_size) noexcept
+{
LOG_ASSERT(verify_buf(from_peer, from_peer_buf_size) && verify_buf(to_peer, to_peer_buf_size));
+ LOG_ASSERT(!_deferred_handshake_params.has_value()); // do_handshake_work() not called as expected
+ if (_deferred_handshake_result.has_value()) {
+ const auto result = *_deferred_handshake_result;
+ _deferred_handshake_result = std::optional<HandshakeResult>();
+ return result;
+ }
if (SSL_is_init_finished(_ssl.get())) {
return handshake_completed();
}
- ConstBufferViewGuard const_view_guard(*_input_bio, from_peer, from_peer_buf_size);
- MutableBufferViewGuard mut_view_guard(*_output_bio, to_peer, to_peer_buf_size);
+ // We make the assumption that TLS handshake processing is primarily reactive,
+ // i.e. a handshake frame is received from the peer and this either produces
+ // output to send back and/or marks the handshake as complete or failed.
+ // One exception to this rule is if if we're a client. In this case we have to
+ // do work the first time we're called in order to prepare a ClientHello message.
+ // At that point there will be nothing on the wire to react to.
+ //
+ // Note that we will return a "needs work" false positive in the case of a short read,
+ // as whether or not a complete TLS frame has been received is entirely opaque to us.
+ // The end result will still be correct, as the do_handshake_work() call will signal
+ // "needs read" as expected, but we get extra thread round-trips and added latency.
+ // It is expected that this is not a common case.
+ const bool first_client_send = ((_mode == Mode::Client) && SSL_in_before(_ssl.get()));
+ const bool needs_work = ((from_peer_buf_size > 0) || first_client_send);
+ if (needs_work) {
+ _deferred_handshake_params = DeferredHandshakeParams(from_peer, from_peer_buf_size, to_peer, to_peer_buf_size);
+ return handshake_needs_work();
+ }
+ return handshake_needs_peer_data();
+}
+
+void OpenSslCryptoCodecImpl::do_handshake_work() noexcept {
+ LOG_ASSERT(_deferred_handshake_params.has_value()); // handshake() not called as expected
+ LOG_ASSERT(!_deferred_handshake_result.has_value()); // do_handshake_work() called multiple times without handshake()
+ const auto params = *_deferred_handshake_params;
+ _deferred_handshake_params = std::optional<DeferredHandshakeParams>();
+
+ ConstBufferViewGuard const_view_guard(*_input_bio, params.from_peer, params.from_peer_buf_size);
+ MutableBufferViewGuard mut_view_guard(*_output_bio, params.to_peer, params.to_peer_buf_size);
const auto consume_res = do_handshake_and_consume_peer_input_bytes();
- LOG_ASSERT(consume_res.bytes_produced == 0);
+ LOG_ASSERT(consume_res.bytes_produced == 0); // Measured via BIO_pending below, not from result.
if (consume_res.failed()) {
- return consume_res;
+ _deferred_handshake_result = consume_res;
+ return;
}
// SSL_do_handshake() might have produced more data to send. Note: handshake may
// be complete at this point.
- int produced = BIO_pending(_output_bio);
- return handshaked_bytes(consume_res.bytes_consumed, static_cast<size_t>(produced), consume_res.state);
+ const int produced = BIO_pending(_output_bio);
+ _deferred_handshake_result = handshaked_bytes(consume_res.bytes_consumed,
+ static_cast<size_t>(produced),
+ consume_res.state);
}
HandshakeResult OpenSslCryptoCodecImpl::do_handshake_and_consume_peer_input_bytes() noexcept {
diff --git a/vespalib/src/vespa/vespalib/net/tls/impl/openssl_crypto_codec_impl.h b/vespalib/src/vespa/vespalib/net/tls/impl/openssl_crypto_codec_impl.h
index 3c491c2bd72..ef7e0998994 100644
--- a/vespalib/src/vespa/vespalib/net/tls/impl/openssl_crypto_codec_impl.h
+++ b/vespalib/src/vespa/vespalib/net/tls/impl/openssl_crypto_codec_impl.h
@@ -5,6 +5,7 @@
#include <vespa/vespalib/net/tls/transport_security_options.h>
#include <vespa/vespalib/net/tls/crypto_codec.h>
#include <memory>
+#include <optional>
namespace vespalib::net::tls { struct TlsContext; }
@@ -16,10 +17,31 @@ class OpenSslTlsContextImpl;
* Frame-level OpenSSL-backed TLSv1.2/TLSv1.3 (depending on OpenSSL version)
* crypto codec implementation.
*
- * NOT thread safe per instance, but independent instances may be
- * used by different threads safely.
+ * NOT generally thread safe per instance, but independent instances may be
+ * used by different threads safely. One exception is that handshake() and
+ * do_handshake_work() may be called from different threads, as long as it
+ * happens with appropriate data visibility synchronization and not concurrently.
*/
class OpenSslCryptoCodecImpl : public CryptoCodec {
+
+ struct DeferredHandshakeParams {
+ const char* from_peer = nullptr;
+ size_t from_peer_buf_size = 0;
+ char* to_peer = nullptr;
+ size_t to_peer_buf_size = 0;
+
+ DeferredHandshakeParams(const char* from_peer_, size_t from_peer_buf_size_,
+ char* to_peer_, size_t to_peer_buf_size_) noexcept
+ : from_peer(from_peer_),
+ from_peer_buf_size(from_peer_buf_size_),
+ to_peer(to_peer_),
+ to_peer_buf_size(to_peer_buf_size_)
+ {}
+
+ DeferredHandshakeParams(const DeferredHandshakeParams&) noexcept = default;
+ DeferredHandshakeParams& operator=(const DeferredHandshakeParams&) noexcept = default;
+ };
+
// The context maintains shared verification callback state, so it must be
// kept alive explictly for at least as long as any codecs.
std::shared_ptr<OpenSslTlsContextImpl> _ctx;
@@ -27,6 +49,8 @@ class OpenSslCryptoCodecImpl : public CryptoCodec {
::BIO* _input_bio; // Owned by _ssl
::BIO* _output_bio; // Owned by _ssl
Mode _mode;
+ std::optional<DeferredHandshakeParams> _deferred_handshake_params;
+ std::optional<HandshakeResult> _deferred_handshake_result;
public:
OpenSslCryptoCodecImpl(std::shared_ptr<OpenSslTlsContextImpl> ctx, Mode mode);
~OpenSslCryptoCodecImpl() override;
@@ -39,7 +63,7 @@ public:
* typically this expansion is only 16 octets). TLS 1.3 reduces
* the allowance for expansion to 256 octets."
*
- * We're on TLSv1.2, so make room for the worst case.
+ * We may be on TLSv1.2, so make room for the worst case.
*/
static constexpr size_t MaximumTlsFrameSize = 16384 + 2048;
static constexpr size_t MaximumFramePlaintextSize = 16384;
@@ -54,6 +78,8 @@ public:
HandshakeResult handshake(const char* from_peer, size_t from_peer_buf_size,
char* to_peer, size_t to_peer_buf_size) noexcept override;
+ void do_handshake_work() noexcept override;
+
EncodeResult encode(const char* plaintext, size_t plaintext_size,
char* ciphertext, size_t ciphertext_size) noexcept override;
DecodeResult decode(const char* ciphertext, size_t ciphertext_size,
diff --git a/vespalib/src/vespa/vespalib/testkit/create-test.sh b/vespalib/src/vespa/vespalib/testkit/create-test.sh
deleted file mode 100755
index d92ebd08fd5..00000000000
--- a/vespalib/src/vespa/vespalib/testkit/create-test.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-gen_ignore_file() {
- echo "generating '$1' ..."
- echo ".depend" > $1
- echo "Makefile" >> $1
- echo "${test}_test" >> $1
-}
-
-gen_project_file() {
- echo "generating '$1' ..."
- echo "APPLICATION ${test}_test" > $1
- echo "OBJS $test" >> $1
- echo "LIBS vespalib/vespalib" >> $1
- echo "EXTERNALLIBS log" >> $1
- echo "" >> $1
- echo "CUSTOMMAKE" >> $1
- echo "test: depend ${test}_test" >> $1
- echo -e "\t@./${test}_test" >> $1
-}
-
-gen_source() {
- echo "generating '$1' ..."
- echo "#include <vespa/vespalib/testkit/testapp.h>" >> $1
- echo "" >> $1
- echo "TEST_SETUP(Test);" >> $1
- echo "" >> $1
- echo "int" >> $1
- echo "Test::Main()" >> $1
- echo "{" >> $1
- echo " TEST_INIT(\"${test}_test\");" >> $1
- echo " TEST_DONE();" >> $1
- echo "}" >> $1
-}
-
-gen_desc() {
- echo "generating '$1' ..."
- echo "$test test. Take a look at $test.cpp for details." > $1
-}
-
-gen_file_list() {
- echo "generating '$1' ..."
- echo "$test.cpp" > $1
-}
-
-if [ $# -ne 1 ]; then
- echo "usage: $0 <name>"
- echo " name: name of the test to create"
- exit 1
-fi
-
-test=$1
-if [ -e $test ]; then
- echo "$test already present, don't want to mess it up..."
- exit 1
-fi
-
-echo "creating directory '$test' ..."
-mkdir -p $test || exit 1
-cd $test || exit 1
-test=`basename $test`
-
-gen_ignore_file .cvsignore
-gen_project_file fastos.project
-gen_source $test.cpp
-gen_desc DESC
-gen_file_list FILES
diff --git a/vespalib/src/vespa/vespalib/testkit/generate-test-makefile.sh b/vespalib/src/vespa/vespalib/testkit/generate-test-makefile.sh
deleted file mode 100755
index 8e172d8d01d..00000000000
--- a/vespalib/src/vespa/vespalib/testkit/generate-test-makefile.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-dirname=`dirname $0`
-basedir=`readlink -f $dirname`
-progname=`basename $0 .sh`
-if [ $# -lt 3 ]; then
- echo "usage: $0 <rundir> <testlist> <top>"
- echo " rundir: where to run and generate output"
- echo " testlist: file with test names (relative to rundir)"
- echo " top: path to top (relative to rundir)"
- exit 1
-fi
-
-rundir=$1
-mkdir -p $1
-cd $1 || exit 1
-testlistfile=$2
-testlist=`cat $2` || exit 1
-top_path=$3
-testmakefile=Makefile
-rm -f $testmakefile
-
-# Generate all target
-echo "all:" >> $testmakefile
-echo -e "\t\$(MAKE) clean" >> $testmakefile
-echo -e "\t\$(MAKE) init" >> $testmakefile
-echo -e "\t\$(MAKE) runtests" >> $testmakefile
-echo -e "\t\$(MAKE) generate-report" >> $testmakefile
-
-# Generate targets for each test
-testnamelist=""
-test_cnt=0
-for test in $testlist; do
- test_cnt=$(($test_cnt + 1))
-
- testpath=$test
- case $test in
- \!*) testpath=${test#!};;
- \?*) testpath=${test#?};;
- esac
- test_name="test-"`echo $testpath | sed -e "s=^tests/==;s=/=.=g"`
- testnamelist="$testnamelist $test_name"
-
- echo "" >> $testmakefile
- echo "$test_name:" >> $testmakefile
- echo -e "\t@sh $basedir/run-test.sh . $test $test_cnt $top_path" >> $testmakefile
-done
-
-echo "" >> $testmakefile
-echo "init:" >> $testmakefile
-echo -e "\tdate +%s > tmp.start-time" >> $testmakefile
-echo "" >> $testmakefile
-echo -e "runtests:$testnamelist" >> $testmakefile
-
-# Generate generate report target
-echo "" >> $testmakefile
-echo "generate-report:" >> $testmakefile
-echo -e "\t@sh $basedir/generate-test-report.sh . $testlistfile" >> $testmakefile
-
-# Generate clean target
-echo "" >> $testmakefile
-echo "clean:" >> $testmakefile
-echo -e "\trm -f test-report.html" >> $testmakefile
-echo -e "\trm -f test-report.html.top" >> $testmakefile
-echo -e "\trm -f test-report.html.bottom" >> $testmakefile
-echo -e "\trm -f test-report.html.entry" >> $testmakefile
-echo -e "\trm -f test-report.html.summary" >> $testmakefile
-echo -e "\trm -f test.*.*.files.html" >> $testmakefile
-echo -e "\trm -f test.*.*.file.*" >> $testmakefile
-echo -e "\trm -f test-report.json" >> $testmakefile
-echo -e "\trm -f tmp.*" >> $testmakefile
diff --git a/vespalib/src/vespa/vespalib/testkit/generate-test-report.sh b/vespalib/src/vespa/vespalib/testkit/generate-test-report.sh
deleted file mode 100755
index acb17d4ba65..00000000000
--- a/vespalib/src/vespa/vespalib/testkit/generate-test-report.sh
+++ /dev/null
@@ -1,210 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-top_color="bgcolor=\"#ccccff\""
-row_color="bgcolor=\"#eeeeff\""
-pass_color="bgcolor=\"#ccffcc\""
-fail_color="bgcolor=\"#ffcccc\""
-ignore_color="bgcolor=\"#ffffcc\""
-
-#
-# Generate top of HTML report
-# $1 - output file
-#
-gen_report_top() {
- dst=$1
- date=`date "+%Y-%m-%d %H:%M:%S"`
- echo "<html>" > $dst
- echo "<title>Test Report ($date)</title>" >> $dst
- echo "<body bgcolor=\"#ffffff\">" >> $dst
- echo "<h1>Test Report ($date)</h1>" >> $dst
-}
-
-#
-# Generate top of JSON report
-# $1 - output file
-#
-gen_report_top_json() {
- dst=$1
- echo "{" >> $dst
-}
-
-#
-# Generate bottom of HTML report
-# $1 - output file
-#
-gen_report_bottom() {
- dst=$1
- echo "</body>" > $dst
- echo "</html>" >> $dst
-}
-
-#
-# Generate bottom of JSON report
-# $1 - output file
-#
-gen_report_bottom_json() {
- dst=$1
- echo "}" >> $dst
-}
-
-#
-# Generate top of test table
-# $1 - output file
-#
-gen_report_entry_init() {
- dst=$1
- echo "<h2>Details</h2>" > $dst
- echo "<table cellspacing=\"2\" cellpadding=\"5\" border=\"0\">" >> $dst
- echo "<tr>" >> $dst
- echo "<th align=\"left\" $top_color>Test</th>" >> $dst
- echo "<th align=\"left\" $top_color>Result</th>" >> $dst
- echo "<th align=\"left\" $top_color>Time (s)</th>" >> $dst
- echo "</tr>" >> $dst
-}
-
-#
-# Generate top of tests entry
-# $1 - output file
-#
-gen_report_entry_init_json() {
- dst=$1
- echo "\"test_suites\": [" >> $dst
-}
-
-#
-# Generate bottom of test table
-# $1 - output file
-#
-gen_report_entry_fini() {
- dst=$1
- echo "</table>" >> $dst
-}
-
-#
-# Generate end of tests entry
-# $1 - output file
-#
-gen_report_entry_fini_json() {
- dst=$1
- echo "]," >> $dst
-}
-
-#
-# Generate test report summary
-# $1 - output file
-# $test_cnt - total number of tests
-# $pass_cnt - number of tests passed
-# $fail_cnt - number of tests failed
-# $ignore_cnt - number of tests ignored
-# $elapsed - total time spent tesing
-#
-gen_report_summary() {
- dst=$1
- echo "<h2>Summary</h2>" > $dst
- echo "<table cellspacing=\"2\" cellpadding=\"5\" border=\"0\">" >> $dst
- echo "<tr>" >> $dst
- echo "<th align=\"left\" $top_color>Tests</th>" >> $dst
- echo "<th align=\"left\" $top_color>Pass</th>" >> $dst
- echo "<th align=\"left\" $top_color>Fail</th>" >> $dst
- echo "<th align=\"left\" $top_color>Ignore</th>" >> $dst
- echo "<th align=\"left\" $top_color>Time (s)</th>" >> $dst
- echo "</tr>" >> $dst
- echo "<tr>" >> $dst
- echo "<td align=\"right\" $row_color>$test_cnt</td>" >> $dst
- echo "<td align=\"right\" $row_color>$pass_cnt</td>" >> $dst
- echo "<td align=\"right\" $row_color>$fail_cnt</td>" >> $dst
- echo "<td align=\"right\" $row_color>$ignore_cnt</td>" >> $dst
- echo "<td align=\"right\" $row_color>$elapsed</td>" >> $dst
- echo "</tr>" >> $dst
- echo "</table>" >> $dst
-}
-
-gen_report_summary_json() {
- dst=$1
- echo "\"summary\": {" >> $dst
- echo "\"total\": $test_cnt," >> $dst
- echo "\"pass\": $pass_cnt," >> $dst
- echo "\"fail\": $fail_cnt," >> $dst
- echo "\"ignore\": $ignore_cnt," >> $dst
- echo "\"time\": $elapsed" >> $dst
- echo "}" >> $dst
-}
-
-progname=`basename $0 .sh`
-if [ $# -lt 2 ]; then
- echo "usage: $0 <rundir> <testlist>"
- echo " rundir: where to run and generate output"
- echo " testlist: file with test names (relative to rundir)"
- exit 1
-fi
-
-rundir=$1
-testlist=`cat $2` || exit 1
-
-report=test-report.html
-jsonreport=test-report.json
-gen_report_top $report.top
-gen_report_top_json $jsonreport
-gen_report_entry_init $report.entry
-gen_report_entry_init_json $jsonreport
-
-test_cnt=0
-fail_cnt=0
-pass_cnt=0
-ignore_cnt=0
-for test in $testlist; do
- test_cnt=$(($test_cnt + 1))
- negate=false
- ignore=false
- case $test in
- \!*) negate=true; prefix="[!]"; test=${test#!};;
- \?*) ignore=true; prefix="[?]"; test=${test#?};;
- esac
- prefix=""
- test_name="${prefix}"`echo $test | sed -e "s=^tests/==;s=/=.=g"`
- test=`basename $test`
- test_result=test.$test_cnt.$test_name.result
- read result < $test_result
- if [ $result -eq 0 ]; then
- if $ignore; then
- ignore_cnt=$(($ignore_cnt + 1))
- else
- pass_cnt=$(($pass_cnt + 1))
- fi
- else
- if $ignore; then
- ignore_cnt=$(($ignore_cnt + 1))
- else
- fail_cnt=$(($fail_cnt + 1))
- cat test.$test_cnt.$test_name.log.file.txt
- fi
- fi
- # Unfortunately, the JSON format is a bit context sensitive, so we need to do the old comma-before-entry-except-first logic
- if [ $test_cnt -gt 1 ]; then
- echo "," >> $jsonreport
- fi
- test_report=tmp.report.$test_name.json
- cat $test_report >> $jsonreport
- rm -f $test_report
- rm -f $test_result
-done
-
-date +%s > tmp.end-time
-elapsed=$((`cat tmp.end-time` - `cat tmp.start-time`))
-gen_report_entry_fini $report.entry
-gen_report_entry_fini_json $jsonreport
-gen_report_summary $report.summary
-gen_report_summary_json $jsonreport
-gen_report_bottom $report.bottom
-gen_report_bottom_json $jsonreport
-cat $report.top $report.summary $report.entry $report.bottom > $report
-
-echo "summary: test/pass/fail/ignore: $test_cnt/$pass_cnt/$fail_cnt/$ignore_cnt"
-if [ $fail_cnt -eq 0 ]; then
- echo "SUCCESS"
- exit 0
-else
- echo "FAILURE"
- exit 1
-fi
diff --git a/vespalib/src/vespa/vespalib/testkit/run-test.sh b/vespalib/src/vespa/vespalib/testkit/run-test.sh
deleted file mode 100755
index ad68b4a190e..00000000000
--- a/vespalib/src/vespa/vespalib/testkit/run-test.sh
+++ /dev/null
@@ -1,241 +0,0 @@
-#!/bin/bash
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-set -e
-
-top_color="bgcolor=\"#ccccff\""
-row_color="bgcolor=\"#eeeeff\""
-pass_color="bgcolor=\"#ccffcc\""
-fail_color="bgcolor=\"#ffcccc\""
-ignore_color="bgcolor=\"#ffffcc\""
-
-
-#
-# Generate a single test table entry
-# $1 - output file
-# $test_name - test name
-# $test_log - href to test log
-# $test_desc - href to test description (or 'false')
-# $test_files - href to test files (or 'false')
-# $test_time - timing info for test run
-#
-# $result - test outcome (0 means pass)
-# $ignore - ignore current test (true/false)
-#
-gen_report_entry() {
- dst=$1
- echo "<tr>" >> $dst
- echo -n "<td $row_color>$test_name (" >> $dst
- if [ $test_desc != "false" ]; then
- echo -n "<a href=\"$test_desc\">desc</a> " >> $dst
- fi
- echo -n "<a href=\"$test_log\">log</a>" >> $dst
- if [ $test_files != "false" ]; then
- echo -n " <a href=\"$test_files\">files</a>" >> $dst
- fi
- echo -n ")</td>" >> $dst
- if [ $result -eq 0 ]; then
- if $ignore; then
- echo "<td $ignore_color>PASS</td>" >> $dst
- else
- echo "<td $pass_color>PASS</td>" >> $dst
- fi
- else
- if $ignore; then
- echo "<td $ignore_color>FAIL</td>" >> $dst
- else
- echo "<td $fail_color>FAIL</td>" >> $dst
- fi
- fi
- echo "<td $row_color>$test_time</td>" >> $dst
- echo "</tr>" >> $dst
-}
-
-#
-# Generate a single test entry in JSON
-# Arguments same as for gen_report_entry()
-#
-gen_report_entry_json() {
- dst=$1
- echo "{" >> $dst
- echo "\"name\": \"$test_name\"," >> $dst
- local log=`cat $test_log | base64 -w 0`
- echo "\"log\": \"$log\"," >> $dst
- echo "\"ignored\": $ignore," >> $dst
- echo "\"time\": $test_run_time," >> $dst
- local success="true"
- if [ $result == 0 ]; then
- success="true"
- else
- success="false"
- fi
- echo "\"success\": $success" >> $dst
- echo -n "}" >> $dst
-}
-
-get_file_size () {
- if [ `uname` = FreeBSD ]; then
- stat -f "%z" "$1"
- return 0
- fi
- if [ `uname` = Linux ]; then
- stat -c "%s" "$1"
- return 0
- fi
- ls -l "$1" | awk '{print $5}'
-}
-
-#
-# Generate test file list
-# $1 - output file
-# $test_name - test name
-# $test_path - path to test
-# $test_cnt - total number of tests (so far)
-#
-gen_file_list() {
- dst=$1
- echo "<html>" > $dst
- echo "<title>File List for $test_name</title>" >> $dst
- echo "<body bgcolor=\"#ffffff\">" >> $dst
- echo "<h1>File List for $test_name</h1>" >> $dst
- echo "<table cellspacing=\"2\" cellpadding=\"5\" border=\"0\">" >> $dst
- echo "<tr>" >> $dst
- echo "<th align=\"left\" $top_color>Filename</th>" >> $dst
- echo "<th align=\"left\" $top_color>Size (bytes)</th>" >> $dst
- echo "</tr>" >> $dst
- filelist=`cat $test_path/FILES`
- for file in $filelist; do
- file_link=test.$test_cnt.$test_name.file.$file.txt
- file_link=`echo "$file_link" | sed -e "s=/=.=g"`
- echo "<tr>" >> $dst
- if [ -f $test_path/$file ]; then
- cp $test_path/$file $file_link
- file_size=`get_file_size $file_link`
- echo "<td $row_color><a href=\"$file_link\">$file</a></td>" >> $dst
- echo "<td align=\"right\" $row_color>$file_size</td>" >> $dst
- else
- echo "<td $row_color>$file</td>" >> $dst
- echo "<td align=\"right\" $row_color>not found</td>" >> $dst
- fi
- echo "</tr>" >> $dst
- done
- echo "</table>" >> $dst
- echo "</body>" >> $dst
- echo "</html>" >> $dst
-}
-
-#
-# Run one test
-#
-run_one_test() {
- test=$1
- test_cnt=$2
- test_name=$3
- test_path=$4
- test_log=$5
- test_result=$6
- negate=$7
- ignore=$8
-
- rm -f tmp.$test_name.log-control
- export VESPA_LOG_CONTROL_FILE=`pwd`/tmp.$test_name.log-control
- # run test
- local starttime=`date +%s`
- /usr/bin/time -o tmp.${test}-time sh -c \
- "(cd $test_path && $MAKE -s test $makeargs) > $test_log 2>&1"
- result=$?
- local endtime=`date +%s`
- test_run_time=$(($endtime - $starttime))
-
- #If you have run with valgrind check errors
- if [ $result -eq 0 ]; then
- valgrind_errors=`grep "ERROR SUMMARY" $test_log | cut -d ' ' -f4`
- for r in $valgrind_errors
- do
- result=$(($result + $r))
- done
- fi
-
- # handle test description
- if [ -f $test_path/DESC ]; then
- test_desc=test.$test_cnt.$test_name.desc.file.txt
- cp $test_path/DESC $test_desc
- else
- test_desc="false"
- fi
-
- # handle test file list
- if [ -f $test_path/FILES ]; then
- test_files=test.$test_cnt.$test_name.files.html
- gen_file_list $test_files
- else
- test_files="false"
- fi
-
- # handle test result negation
- if $negate; then
- if [ $result -eq 0 ]; then
- result=1
- else
- result=0
- fi
- fi
- result_string=""
- if [ $result -eq 0 ]; then
- if $ignore; then
- result_string="PASS (ignored)"
- else
- result_string="PASS"
- fi
- else
- if $ignore; then
- result_string="FAIL (ignored)"
- else
- result_string="FAIL"
- fi
- fi
-
- test_time=`cat tmp.${test}-time`
- echo $test_name : $result_string
- echo $result > $test_result
- gen_report_entry $report.entry
- gen_report_entry_json tmp.report.$test_name.json
-}
-
-progname=`basename $0 .sh`
-if [ $# -lt 4 ]; then
- echo "usage: $0 <rundir> <test> <testid> <top>"
- echo " rundir: where to run and generate output"
- echo " test: content of testdir"
- echo" testid: unique id for this test (when run in parallel with other tests)"
- echo " top: path to top (relative to rundir)"
- exit 1
-fi
-
-mkdir -p $1
-cd $1 || exit 1
-test=$2
-test_cnt=$3
-top_path=$4
-
-: ${MAKE:=gmake}
-unset MAKELEVEL
-
-report=test-report.html
-jsonreport=test-report.json
-
-negate=false
-ignore=false
-case $test in
-\!*) negate=true; prefix="[!]"; test=${test#!};;
-\?*) ignore=true; prefix="[?]"; test=${test#?};;
-esac
-prefix=""
-test_name="${prefix}"`echo $test | sed -e "s=^tests/==;s=/=.=g"`
-test_path=$top_path/$test
-test=`basename $test`
-test_log=test.$test_cnt.$test_name.log.file.txt
-test_result=test.$test_cnt.$test_name.result
-# run test
-echo "running test '$test_name' ... "
-
-run_one_test $test $test_cnt $test_name $test_path $test_log $test_result $negate $ignore
diff --git a/vespalib/src/vespa/vespalib/testkit/testrun.sh b/vespalib/src/vespa/vespalib/testkit/testrun.sh
deleted file mode 100755
index 5feffe30edf..00000000000
--- a/vespalib/src/vespa/vespalib/testkit/testrun.sh
+++ /dev/null
@@ -1,466 +0,0 @@
-#!/bin/bash
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-set -e
-
-top_color="bgcolor=\"#ccccff\""
-row_color="bgcolor=\"#eeeeff\""
-pass_color="bgcolor=\"#ccffcc\""
-fail_color="bgcolor=\"#ffcccc\""
-ignore_color="bgcolor=\"#ffffcc\""
-
-#
-# Generate top of HTML report
-# $1 - output file
-#
-gen_report_top() {
- dst=$1
- date=`date "+%Y-%m-%d %H:%M:%S"`
- echo "<html>" > $dst
- echo "<title>Test Report ($date)</title>" >> $dst
- echo "<body bgcolor=\"#ffffff\">" >> $dst
- echo "<h1>Test Report ($date)</h1>" >> $dst
-}
-
-#
-# Generate top of JSON report
-# $1 - output file
-#
-gen_report_top_json() {
- dst=$1
- echo "{" >> $dst
-}
-
-#
-# Generate bottom of HTML report
-# $1 - output file
-#
-gen_report_bottom() {
- dst=$1
- echo "</body>" > $dst
- echo "</html>" >> $dst
-}
-
-#
-# Generate bottom of JSON report
-# $1 - output file
-#
-gen_report_bottom_json() {
- dst=$1
- echo "}" >> $dst
-}
-
-#
-# Generate top of test table
-# $1 - output file
-#
-gen_report_entry_init() {
- dst=$1
- echo "<h2>Details</h2>" > $dst
- echo "<table cellspacing=\"2\" cellpadding=\"5\" border=\"0\">" >> $dst
- echo "<tr>" >> $dst
- echo "<th align=\"left\" $top_color>Test</th>" >> $dst
- echo "<th align=\"left\" $top_color>Result</th>" >> $dst
- echo "<th align=\"left\" $top_color>Time (s)</th>" >> $dst
- echo "</tr>" >> $dst
-}
-
-#
-# Generate top of tests entry
-# $1 - output file
-#
-gen_report_entry_init_json() {
- dst=$1
- echo "\"test_suites\": [" >> $dst
-}
-
-#
-# Generate bottom of test table
-# $1 - output file
-#
-gen_report_entry_fini() {
- dst=$1
- echo "</table>" >> $dst
-}
-
-#
-# Generate end of tests entry
-# $1 - output file
-#
-gen_report_entry_fini_json() {
- dst=$1
- echo "]," >> $dst
-}
-
-#
-# Generate a single test table entry
-# $1 - output file
-# $test_name - test name
-# $test_log - href to test log
-# $test_desc - href to test description (or 'false')
-# $test_files - href to test files (or 'false')
-# $test_time - timing info for test run
-#
-# $result - test outcome (0 means pass)
-# $ignore - ignore current test (true/false)
-#
-gen_report_entry() {
- dst=$1
- echo "<tr>" >> $dst
- echo -n "<td $row_color>$test_name (" >> $dst
- if [ $test_desc != "false" ]; then
- echo -n "<a href=\"$test_desc\">desc</a> " >> $dst
- fi
- echo -n "<a href=\"$test_log\">log</a>" >> $dst
- if [ $test_files != "false" ]; then
- echo -n " <a href=\"$test_files\">files</a>" >> $dst
- fi
- echo -n ")</td>" >> $dst
- if [ $result -eq 0 ]; then
- if $ignore; then
- echo "<td $ignore_color>PASS</td>" >> $dst
- else
- echo "<td $pass_color>PASS</td>" >> $dst
- fi
- else
- if $ignore; then
- echo "<td $ignore_color>FAIL</td>" >> $dst
- else
- echo "<td $fail_color>FAIL</td>" >> $dst
- fi
- fi
- echo "<td $row_color>$test_time</td>" >> $dst
- echo "</tr>" >> $dst
-}
-
-#
-# Generate a single test entry in JSON
-# Arguments same as for gen_report_entry()
-#
-gen_report_entry_json() {
- dst=$1
- echo "{" >> $dst
- echo "\"name\": \"$test_name\"," >> $dst
- local log=`cat $test_log | base64 -w 0`
- echo "\"log\": \"$log\"," >> $dst
- echo "\"ignored\": $ignore," >> $dst
- echo "\"time\": $test_run_time," >> $dst
- local success="true"
- if [ $result == 0 ]; then
- success="true"
- else
- success="false"
- fi
- echo "\"success\": $success" >> $dst
- echo -n "}" >> $dst
-}
-
-#
-# Generate test report summary
-# $1 - output file
-# $test_cnt - total number of tests
-# $pass_cnt - number of tests passed
-# $fail_cnt - number of tests failed
-# $ignore_cnt - number of tests ignored
-# $elapsed - total time spent tesing
-#
-gen_report_summary() {
- dst=$1
- echo "<h2>Summary</h2>" > $dst
- echo "<table cellspacing=\"2\" cellpadding=\"5\" border=\"0\">" >> $dst
- echo "<tr>" >> $dst
- echo "<th align=\"left\" $top_color>Tests</th>" >> $dst
- echo "<th align=\"left\" $top_color>Pass</th>" >> $dst
- echo "<th align=\"left\" $top_color>Fail</th>" >> $dst
- echo "<th align=\"left\" $top_color>Ignore</th>" >> $dst
- echo "<th align=\"left\" $top_color>Time (s)</th>" >> $dst
- echo "</tr>" >> $dst
- echo "<tr>" >> $dst
- echo "<td align=\"right\" $row_color>$test_cnt</td>" >> $dst
- echo "<td align=\"right\" $row_color>$pass_cnt</td>" >> $dst
- echo "<td align=\"right\" $row_color>$fail_cnt</td>" >> $dst
- echo "<td align=\"right\" $row_color>$ignore_cnt</td>" >> $dst
- echo "<td align=\"right\" $row_color>$elapsed</td>" >> $dst
- echo "</tr>" >> $dst
- echo "</table>" >> $dst
-}
-
-gen_report_summary_json() {
- dst=$1
- echo "\"summary\": {" >> $dst
- echo "\"total\": $test_cnt," >> $dst
- echo "\"pass\": $pass_cnt," >> $dst
- echo "\"fail\": $fail_cnt," >> $dst
- echo "\"ignore\": $ignore_cnt," >> $dst
- echo "\"time\": $elapsed" >> $dst
- echo "}" >> $dst
-}
-
-get_file_size () {
- if [ `uname` = FreeBSD ]; then
- stat -f "%z" "$1"
- return 0
- fi
- if [ `uname` = Linux ]; then
- stat -c "%s" "$1"
- return 0
- fi
- ls -l "$1" | awk '{print $5}'
-}
-
-#
-# Generate test file list
-# $1 - output file
-# $test_name - test name
-# $test_path - path to test
-# $test_cnt - total number of tests (so far)
-#
-gen_file_list() {
- dst=$1
- echo "<html>" > $dst
- echo "<title>File List for $test_name</title>" >> $dst
- echo "<body bgcolor=\"#ffffff\">" >> $dst
- echo "<h1>File List for $test_name</h1>" >> $dst
- echo "<table cellspacing=\"2\" cellpadding=\"5\" border=\"0\">" >> $dst
- echo "<tr>" >> $dst
- echo "<th align=\"left\" $top_color>Filename</th>" >> $dst
- echo "<th align=\"left\" $top_color>Size (bytes)</th>" >> $dst
- echo "</tr>" >> $dst
- filelist=`cat $test_path/FILES`
- for file in $filelist; do
- file_link=test.$test_cnt.$test_name.file.$file.txt
- file_link=`echo "$file_link" | sed -e "s=/=.=g"`
- echo "<tr>" >> $dst
- if [ -f $test_path/$file ]; then
- cp $test_path/$file $file_link
- file_size=`get_file_size $file_link`
- echo "<td $row_color><a href=\"$file_link\">$file</a></td>" >> $dst
- echo "<td align=\"right\" $row_color>$file_size</td>" >> $dst
- else
- echo "<td $row_color>$file</td>" >> $dst
- echo "<td align=\"right\" $row_color>not found</td>" >> $dst
- fi
- echo "</tr>" >> $dst
- done
- echo "</table>" >> $dst
- echo "</body>" >> $dst
- echo "</html>" >> $dst
-}
-
-#
-# Run one test
-#
-run_one_test() {
- test=$1
- test_cnt=$2
- test_name=$3
- test_path=$4
- test_log=$5
- test_result=$6
- negate=$7
- ignore=$8
-
- rm -f tmp.$test_name.log-control
- export VESPA_LOG_CONTROL_FILE=`pwd`/tmp.$test_name.log-control
- # run test
- local starttime=`date +%s`
- /usr/bin/time -o tmp.${test}-time sh -c \
- "(cd $test_path && $MAKE -s test $makeargs) > $test_log 2>&1"
- result=$?
- local endtime=`date +%s`
- test_run_time=$(($endtime - $starttime))
-
- #If you have run with valgrind check errors
- if [ $result -eq 0 ]; then
- valgrind_errors=`grep "ERROR SUMMARY" $test_log | cut -d ' ' -f4`
- for r in $valgrind_errors
- do
- result=$(($result + $r))
- done
- fi
-
- # handle test description
- if [ -f $test_path/DESC ]; then
- test_desc=test.$test_cnt.$test_name.desc.file.txt
- cp $test_path/DESC $test_desc
- else
- test_desc="false"
- fi
-
- # handle test file list
- if [ -f $test_path/FILES ]; then
- test_files=test.$test_cnt.$test_name.files.html
- gen_file_list $test_files
- else
- test_files="false"
- fi
-
- # handle test result negation
- if $negate; then
- if [ $result -eq 0 ]; then
- result=1
- else
- result=0
- fi
- fi
- result_string=""
- if [ $result -eq 0 ]; then
- if $ignore; then
- result_string="PASS (ignored)"
- else
- result_string="PASS"
- fi
- else
- if $ignore; then
- result_string="FAIL (ignored)"
- else
- result_string="FAIL"
- fi
- fi
-
- test_time=`cat tmp.${test}-time`
- echo $test_name : $result_string
- echo $result > $test_result
- gen_report_entry $report.entry
- gen_report_entry_json tmp.report.$test_name.json
-}
-
-progname=`basename $0 .sh`
-parallell=1
-if [ $progname = "testrun_sequential" ]; then
- parallell=0
-fi
-
-if [ $# -lt 3 ]; then
- echo "usage: $0 <rundir> <testlist> <top> [makeargs]"
- echo " rundir: where to run and generate output"
- echo " testlist: file with test names (relative to rundir)"
- echo " top: path to top (relative to rundir)"
- exit 1
-fi
-
-makeargs=""
-if [ $# -eq 4 ]; then
- makeargs=$4
-fi
-echo $makeargs
-
-mkdir -p $1
-cd $1 || exit 1
-testlist=`cat $2` || exit 1
-top_path=$3
-
-: ${MAKE:=gmake}
-unset MAKELEVEL
-
-rm -f test-report.html
-rm -f test-report.html.top
-rm -f test-report.html.bottom
-rm -f test-report.html.entry
-rm -f test-report.html.summary
-rm -f tmp.start-time
-rm -f tmp.end-time
-rm -f tmp.test-time
-rm -f tmp.report.*.json
-rm -f test.*.*.files.html
-rm -f test.*.*.file.*
-rm -f test-report.json
-
-date +%s > tmp.start-time
-
-report=test-report.html
-jsonreport=test-report.json
-gen_report_top $report.top
-gen_report_top_json $jsonreport
-gen_report_entry_init $report.entry
-gen_report_entry_init_json $jsonreport
-
-test_cnt=0
-fail_cnt=0
-pass_cnt=0
-ignore_cnt=0
-
-for test in $testlist; do
- test_cnt=$(($test_cnt + 1))
-
- negate=false
- ignore=false
- case $test in
- \!*) negate=true; prefix="[!]"; test=${test#!};;
- \?*) ignore=true; prefix="[?]"; test=${test#?};;
- esac
- prefix=""
- test_name="${prefix}"`echo $test | sed -e "s=^tests/==;s=/=.=g"`
- test_path=$top_path/$test
- test=`basename $test`
- test_log=test.$test_cnt.$test_name.log.file.txt
- test_result=test.$test_cnt.$test_name.result
- # run test
- echo -n "running test '$test_name' ... "
-
- if [ $parallell -eq 1 ]; then
- run_one_test $test $test_cnt $test_name $test_path $test_log $test_result $negate $ignore &
- echo $!
- else
- run_one_test $test $test_cnt $test_name $test_path $test_log $test_result $negate $ignore
- fi
-
-done
-
-wait
-
-test_cnt=0
-for test in $testlist; do
- test_cnt=$(($test_cnt + 1))
- negate=false
- ignore=false
- case $test in
- \!*) negate=true; prefix="[!]"; test=${test#!};;
- \?*) ignore=true; prefix="[?]"; test=${test#?};;
- esac
- prefix=""
- test_name="${prefix}"`echo $test | sed -e "s=^tests/==;s=/=.=g"`
- test=`basename $test`
- test_result=test.$test_cnt.$test_name.result
- read result < $test_result
- if [ $result -eq 0 ]; then
- if $ignore; then
- ignore_cnt=$(($ignore_cnt + 1))
- else
- pass_cnt=$(($pass_cnt + 1))
- fi
- else
- if $ignore; then
- ignore_cnt=$(($ignore_cnt + 1))
- else
- fail_cnt=$(($fail_cnt + 1))
- cat test.$test_cnt.$test_name.log.file.txt
- fi
- fi
- # Unfortunately, the JSON format is a bit context sensitive, so we need to do the old comma-before-entry-except-first logic
- if [ $test_cnt -gt 1 ]; then
- echo "," >> $jsonreport
- fi
- test_report=tmp.report.$test_name.json
- cat $test_report >> $jsonreport
- rm -f $test_report
- rm -f $test_result
-done
-
-date +%s > tmp.end-time
-elapsed=$((`cat tmp.end-time` - `cat tmp.start-time`))
-gen_report_entry_fini $report.entry
-gen_report_entry_fini_json $jsonreport
-gen_report_summary $report.summary
-gen_report_summary_json $jsonreport
-gen_report_bottom $report.bottom
-gen_report_bottom_json $jsonreport
-cat $report.top $report.summary $report.entry $report.bottom > $report
-
-echo "summary: test/pass/fail/ignore: $test_cnt/$pass_cnt/$fail_cnt/$ignore_cnt"
-if [ $fail_cnt -eq 0 ]; then
- echo "SUCCESS"
- exit 0
-else
- echo "FAILURE"
- exit 1
-fi
diff --git a/vespamalloc/src/tests/allocfree/DESC b/vespamalloc/src/tests/allocfree/DESC
deleted file mode 100644
index 4f3ca4d4d97..00000000000
--- a/vespamalloc/src/tests/allocfree/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a unittest of vespamalloc.
diff --git a/vespamalloc/src/tests/allocfree/FILES b/vespamalloc/src/tests/allocfree/FILES
deleted file mode 100644
index 4b14c586dd4..00000000000
--- a/vespamalloc/src/tests/allocfree/FILES
+++ /dev/null
@@ -1 +0,0 @@
-testatomic.cpp
diff --git a/vespamalloc/src/tests/doubledelete/DESC b/vespamalloc/src/tests/doubledelete/DESC
deleted file mode 100644
index 004492d6b82..00000000000
--- a/vespamalloc/src/tests/doubledelete/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test that double delete is detected by vespamallocdxxxx.
diff --git a/vespamalloc/src/tests/doubledelete/FILES b/vespamalloc/src/tests/doubledelete/FILES
deleted file mode 100644
index 3beebbcb132..00000000000
--- a/vespamalloc/src/tests/doubledelete/FILES
+++ /dev/null
@@ -1 +0,0 @@
-doubledelete.cpp
diff --git a/vespamalloc/src/tests/overwrite/DESC b/vespamalloc/src/tests/overwrite/DESC
deleted file mode 100644
index 5d5e1d01ba4..00000000000
--- a/vespamalloc/src/tests/overwrite/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a test of using memory after delete detection.
diff --git a/vespamalloc/src/tests/overwrite/FILES b/vespamalloc/src/tests/overwrite/FILES
deleted file mode 100644
index d8b6a578e9d..00000000000
--- a/vespamalloc/src/tests/overwrite/FILES
+++ /dev/null
@@ -1 +0,0 @@
-overwrite.cpp
diff --git a/vespamalloc/src/tests/stacktrace/DESC b/vespamalloc/src/tests/stacktrace/DESC
deleted file mode 100644
index 5f30c916321..00000000000
--- a/vespamalloc/src/tests/stacktrace/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Test that the stacktrace functionality works as expected.
diff --git a/vespamalloc/src/tests/stacktrace/FILES b/vespamalloc/src/tests/stacktrace/FILES
deleted file mode 100644
index 24b43aa0f89..00000000000
--- a/vespamalloc/src/tests/stacktrace/FILES
+++ /dev/null
@@ -1 +0,0 @@
-stacktrace.cpp
diff --git a/vespamalloc/src/tests/test1/DESC b/vespamalloc/src/tests/test1/DESC
deleted file mode 100644
index 4f3ca4d4d97..00000000000
--- a/vespamalloc/src/tests/test1/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a unittest of vespamalloc.
diff --git a/vespamalloc/src/tests/test1/FILES b/vespamalloc/src/tests/test1/FILES
deleted file mode 100644
index 4b14c586dd4..00000000000
--- a/vespamalloc/src/tests/test1/FILES
+++ /dev/null
@@ -1 +0,0 @@
-testatomic.cpp
diff --git a/vespamalloc/src/tests/test2/DESC b/vespamalloc/src/tests/test2/DESC
deleted file mode 100644
index 4f3ca4d4d97..00000000000
--- a/vespamalloc/src/tests/test2/DESC
+++ /dev/null
@@ -1 +0,0 @@
-This is a unittest of vespamalloc.
diff --git a/vespamalloc/src/tests/test2/FILES b/vespamalloc/src/tests/test2/FILES
deleted file mode 100644
index 44b3d9f7c51..00000000000
--- a/vespamalloc/src/tests/test2/FILES
+++ /dev/null
@@ -1 +0,0 @@
-testgraph.cpp
diff --git a/vsm/src/tests/charbuffer/DESC b/vsm/src/tests/charbuffer/DESC
deleted file mode 100644
index 2f1758f837e..00000000000
--- a/vsm/src/tests/charbuffer/DESC
+++ /dev/null
@@ -1 +0,0 @@
-charbuffer test. Take a look at charbuffer.cpp for details.
diff --git a/vsm/src/tests/charbuffer/FILES b/vsm/src/tests/charbuffer/FILES
deleted file mode 100644
index ef12614a361..00000000000
--- a/vsm/src/tests/charbuffer/FILES
+++ /dev/null
@@ -1 +0,0 @@
-charbuffer.cpp
diff --git a/vsm/src/tests/create-test.sh b/vsm/src/tests/create-test.sh
deleted file mode 100644
index 6c683706180..00000000000
--- a/vsm/src/tests/create-test.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/sh
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-gen_ignore_file() {
- echo "generating '$1' ..."
- echo ".depend" > $1
- echo "Makefile" >> $1
- echo "${test}_test" >> $1
-}
-
-gen_project_file() {
- echo "generating '$1' ..."
- echo "APPLICATION ${test}_test" > $1
- echo "OBJS $test" >> $1
- echo "LIBS vsm/vsm" >> $1
- echo "EXTERNALLIBS vespalib vespalog" >> $1
- echo "" >> $1
- echo "CUSTOMMAKE" >> $1
- echo "test: depend ${test}_test" >> $1
- echo -e "\t@./${test}_test" >> $1
-}
-
-gen_source() {
- echo "generating '$1' ..."
- echo "#include <vespa/log/log.h>" > $1
- echo "LOG_SETUP(\"${test}_test\");" >> $1
- echo "#include <vespa/vespalib/testkit/testapp.h>" >> $1
- echo "" >> $1
- echo "// using namespace ;" >> $1
- echo "" >> $1
- echo "TEST_SETUP(Test);" >> $1
- echo "" >> $1
- echo "int" >> $1
- echo "Test::Main()" >> $1
- echo "{" >> $1
- echo " TEST_INIT(\"${test}_test\");" >> $1
- echo " TEST_DONE();" >> $1
- echo "}" >> $1
-}
-
-gen_desc() {
- echo "generating '$1' ..."
- echo "$test test. Take a look at $test.cpp for details." > $1
-}
-
-gen_file_list() {
- echo "generating '$1' ..."
- echo "$test.cpp" > $1
-}
-
-if [ $# -ne 1 ]; then
- echo "usage: $0 <name>"
- echo " name: name of the test to create"
- exit 1
-fi
-
-test=$1
-if [ -e $test ]; then
- echo "$test already present, don't want to mess it up..."
- exit 1
-fi
-
-echo "creating directory '$test' ..."
-mkdir -p $test || exit 1
-cd $test || exit 1
-test=`basename $test`
-
-gen_ignore_file .cvsignore
-gen_project_file fastos.project
-gen_source $test.cpp
-gen_desc DESC
-gen_file_list FILES
diff --git a/vsm/src/tests/docsum/DESC b/vsm/src/tests/docsum/DESC
deleted file mode 100644
index a2008f9b6c4..00000000000
--- a/vsm/src/tests/docsum/DESC
+++ /dev/null
@@ -1 +0,0 @@
-docsum test. Take a look at docsum.cpp for details.
diff --git a/vsm/src/tests/docsum/FILES b/vsm/src/tests/docsum/FILES
deleted file mode 100644
index 0ada8d30e81..00000000000
--- a/vsm/src/tests/docsum/FILES
+++ /dev/null
@@ -1 +0,0 @@
-docsum.cpp
diff --git a/vsm/src/tests/document/DESC b/vsm/src/tests/document/DESC
deleted file mode 100644
index 6ab6ded2dbc..00000000000
--- a/vsm/src/tests/document/DESC
+++ /dev/null
@@ -1 +0,0 @@
-document test. Take a look at document.cpp for details.
diff --git a/vsm/src/tests/document/FILES b/vsm/src/tests/document/FILES
deleted file mode 100644
index 2721ca2d928..00000000000
--- a/vsm/src/tests/document/FILES
+++ /dev/null
@@ -1 +0,0 @@
-document.cpp
diff --git a/vsm/src/tests/searcher/DESC b/vsm/src/tests/searcher/DESC
deleted file mode 100644
index 1165ce57737..00000000000
--- a/vsm/src/tests/searcher/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Unit tests for string and numeric field searchers. Take a look at searcher.cpp for details.
diff --git a/vsm/src/tests/searcher/FILES b/vsm/src/tests/searcher/FILES
deleted file mode 100644
index 603eb41c816..00000000000
--- a/vsm/src/tests/searcher/FILES
+++ /dev/null
@@ -1 +0,0 @@
-searcher.cpp
diff --git a/vsm/src/tests/textutil/DESC b/vsm/src/tests/textutil/DESC
deleted file mode 100644
index e1a0220f550..00000000000
--- a/vsm/src/tests/textutil/DESC
+++ /dev/null
@@ -1 +0,0 @@
-Tests of text utils used during searching. Take a look at textutil.cpp for details.
diff --git a/vsm/src/tests/textutil/FILES b/vsm/src/tests/textutil/FILES
deleted file mode 100644
index f1b37f6aaec..00000000000
--- a/vsm/src/tests/textutil/FILES
+++ /dev/null
@@ -1 +0,0 @@
-textutil.cpp