From ce711f7d2f9fba540dc2a72d70038e9eb39d30a2 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Tue, 23 Apr 2024 09:40:44 +0200 Subject: [PATCH 1/4] Python: Move dataflow tests out of experimental --- .../dataflow/TestUtil/DataflowQueryTest.qll | 0 .../dataflow/TestUtil/FlowTest.qll | 0 .../dataflow/TestUtil/LocalFlowStepTest.qll | 0 .../dataflow/TestUtil/MaximalFlowTest.qll | 0 .../dataflow/TestUtil/NormalDataflowTest.qll | 0 .../dataflow/TestUtil/NormalTaintTrackingTest.qll | 0 .../dataflow/TestUtil/RoutingTest.qll | 0 .../dataflow/TestUtil/UnresolvedCalls.qll | 0 .../dataflow/basic/allFlowsConfig.qll | 0 .../dataflow/basic/callGraph.expected | 0 .../{experimental => library-tests}/dataflow/basic/callGraph.ql | 0 .../dataflow/basic/callGraphSinks.expected | 0 .../dataflow/basic/callGraphSinks.ql | 0 .../dataflow/basic/callGraphSources.expected | 0 .../dataflow/basic/callGraphSources.ql | 0 .../dataflow/basic/global.expected | 0 .../test/{experimental => library-tests}/dataflow/basic/global.ql | 0 .../dataflow/basic/globalStep.expected | 0 .../{experimental => library-tests}/dataflow/basic/globalStep.ql | 0 .../{experimental => library-tests}/dataflow/basic/local.expected | 0 .../test/{experimental => library-tests}/dataflow/basic/local.ql | 0 .../dataflow/basic/localFlowStepTest.expected | 0 .../dataflow/basic/localFlowStepTest.ql | 0 .../dataflow/basic/localStep.expected | 0 .../{experimental => library-tests}/dataflow/basic/localStep.ql | 0 .../dataflow/basic/maximalFlowTest.expected | 0 .../dataflow/basic/maximalFlowTest.ql | 0 .../dataflow/basic/maximalFlows.expected | 0 .../dataflow/basic/maximalFlows.ql | 0 .../dataflow/basic/maximalFlowsConfig.qll | 0 .../{experimental => library-tests}/dataflow/basic/sinks.expected | 0 .../test/{experimental => library-tests}/dataflow/basic/sinks.ql | 0 .../dataflow/basic/sources.expected | 0 .../{experimental => library-tests}/dataflow/basic/sources.ql | 0 .../test/{experimental => library-tests}/dataflow/basic/test.py | 0 .../{experimental => library-tests}/dataflow/callGraphConfig.qll | 0 .../dataflow/callgraph_crosstalk/Arguments.expected | 0 .../dataflow/callgraph_crosstalk/Arguments.ql | 0 .../dataflow/callgraph_crosstalk/options | 0 .../dataflow/callgraph_crosstalk/test.py | 0 .../dataflow/calls/DataFlowCallTest.expected | 0 .../dataflow/calls/DataFlowCallTest.ql | 0 .../dataflow/calls/new_cls_param.py | 0 .../test/{experimental => library-tests}/dataflow/calls/test.py | 0 .../dataflow/consistency/class_scope.py | 0 .../dataflow/consistency/modeling-consistency.expected | 0 .../dataflow/consistency/modeling-consistency.ql | 0 .../dataflow/consistency/module.py | 0 .../{experimental => library-tests}/dataflow/consistency/test.py | 0 .../dataflow/coverage-py2/argumentRoutingTest.expected | 0 .../dataflow/coverage-py2/argumentRoutingTest.qlref | 0 .../dataflow/coverage-py2/classes.py | 0 .../{experimental => library-tests}/dataflow/coverage-py2/options | 0 .../dataflow/coverage-py3/argumentRoutingTest.expected | 0 .../dataflow/coverage-py3/argumentRoutingTest.qlref | 0 .../dataflow/coverage-py3/classes.py | 0 .../{experimental => library-tests}/dataflow/coverage-py3/options | 0 .../dataflow/coverage/NormalDataflowTest.expected | 0 .../dataflow/coverage/NormalDataflowTest.ql | 0 .../dataflow/coverage/argumentPassing.py | 0 .../dataflow/coverage/argumentPassing_bad_flow_test.py | 0 .../dataflow/coverage/argumentRoutingTest.expected | 0 .../dataflow/coverage/argumentRoutingTest.ql | 0 .../{experimental => library-tests}/dataflow/coverage/classes.py | 0 .../dataflow/coverage/datamodel.py | 0 .../dataflow/coverage/localFlow.expected | 0 .../dataflow/coverage/localFlow.ql | 0 .../{experimental => library-tests}/dataflow/coverage/loops.py | 0 .../dataflow/coverage/module_level.py | 0 .../{experimental => library-tests}/dataflow/coverage/test.py | 0 .../dataflow/coverage/test_builtins.py | 0 .../dataflow/def-use-flow/def_use_counts.expected | 0 .../dataflow/def-use-flow/def_use_counts.ql | 0 .../dataflow/def-use-flow/def_use_flow.py | 0 .../dataflow/enclosing-callable/EnclosingCallable.expected | 0 .../dataflow/enclosing-callable/EnclosingCallable.ql | 0 .../dataflow/enclosing-callable/class_example.py | 0 .../dataflow/enclosing-callable/generator.py | 0 .../dataflow/exceptions/NormalDataflowTest.expected | 0 .../dataflow/exceptions/NormalDataflowTest.ql | 0 .../{experimental => library-tests}/dataflow/exceptions/test.py | 0 .../dataflow/exceptions/test_group.py | 0 .../dataflow/fieldflow/NormalDataflowTest.expected | 0 .../dataflow/fieldflow/NormalDataflowTest.ql | 0 .../dataflow/fieldflow/UnresolvedCalls.expected | 0 .../dataflow/fieldflow/UnresolvedCalls.ql | 0 .../{experimental => library-tests}/dataflow/fieldflow/options | 0 .../{experimental => library-tests}/dataflow/fieldflow/test.py | 0 .../dataflow/fieldflow/test_dict.py | 0 .../dataflow/fieldflow/test_global.py | 0 .../dataflow/global-flow/accesses.expected | 0 .../dataflow/global-flow/accesses.ql | 0 .../{experimental => library-tests}/dataflow/global-flow/known.py | 0 .../{experimental => library-tests}/dataflow/global-flow/test.py | 0 .../{experimental => library-tests}/dataflow/import-star/deux.py | 0 .../dataflow/import-star/global.expected | 0 .../dataflow/import-star/global.ql | 0 .../{experimental => library-tests}/dataflow/import-star/one.py | 0 .../{experimental => library-tests}/dataflow/import-star/test1.py | 0 .../{experimental => library-tests}/dataflow/import-star/test2.py | 0 .../{experimental => library-tests}/dataflow/import-star/test3.py | 0 .../{experimental => library-tests}/dataflow/import-star/three.py | 0 .../{experimental => library-tests}/dataflow/import-star/trois.py | 0 .../{experimental => library-tests}/dataflow/import-star/two.py | 0 .../{experimental => library-tests}/dataflow/import-star/un.py | 0 .../dataflow/match/NormalDataflowTest.expected | 0 .../dataflow/match/NormalDataflowTest.ql | 0 .../test/{experimental => library-tests}/dataflow/match/test.py | 0 .../dataflow/method-calls/test.expected | 0 .../{experimental => library-tests}/dataflow/method-calls/test.py | 0 .../{experimental => library-tests}/dataflow/method-calls/test.ql | 0 .../dataflow/model-summaries/InlineTaintTest.expected | 0 .../dataflow/model-summaries/InlineTaintTest.ext.yml | 0 .../dataflow/model-summaries/InlineTaintTest.ql | 0 .../dataflow/model-summaries/NormalDataflowTest.expected | 0 .../dataflow/model-summaries/NormalDataflowTest.ext.yml | 0 .../dataflow/model-summaries/NormalDataflowTest.ql | 0 .../dataflow/model-summaries/model_summaries.py | 0 .../dataflow/module-initialization/base.py | 0 .../dataflow/module-initialization/localFlow.expected | 0 .../dataflow/module-initialization/localFlow.ql | 0 .../dataflow/module-initialization/m1.py | 0 .../dataflow/module-initialization/multiphase.py | 0 .../dataflow/module-initialization/test.py | 0 .../dataflow/module-initialization/testOnce.py | 0 python/ql/test/{experimental => library-tests}/dataflow/options | 0 .../dataflow/path-graph/PathNodes.expected | 0 .../dataflow/path-graph/PathNodes.ql | 0 .../{experimental => library-tests}/dataflow/path-graph/test.py | 0 .../{experimental => library-tests}/dataflow/pep_328/__init__.py | 0 .../dataflow/pep_328/package/__init__.py | 0 .../dataflow/pep_328/package/moduleA.py | 0 .../dataflow/pep_328/package/subpackage1/__init__.py | 0 .../dataflow/pep_328/package/subpackage1/moduleX.py | 0 .../dataflow/pep_328/package/subpackage1/moduleY.py | 0 .../dataflow/pep_328/package/subpackage2/__init__.py | 0 .../dataflow/pep_328/package/subpackage2/moduleZ.py | 0 .../{experimental => library-tests}/dataflow/pep_328/start.py | 0 .../dataflow/qll-private-imports/README.md | 0 .../dataflow/qll-private-imports/Test.expected | 0 .../dataflow/qll-private-imports/Test.ql | 0 .../dataflow/qll-private-imports/test.py | 0 .../dataflow/regression/custom_dataflow.expected | 0 .../dataflow/regression/custom_dataflow.ql | 0 .../dataflow/regression/dataflow.expected | 0 .../dataflow/regression/dataflow.ql | 0 .../{experimental => library-tests}/dataflow/regression/module.py | 0 .../{experimental => library-tests}/dataflow/regression/test.py | 0 .../dataflow/sensitive-data/TestSensitiveDataSources.expected | 0 .../dataflow/sensitive-data/TestSensitiveDataSources.ql | 0 .../dataflow/sensitive-data/test.py | 0 .../dataflow/strange-essaflow/test.py | 0 .../dataflow/strange-essaflow/testFlow.expected | 0 .../dataflow/strange-essaflow/testFlow.ql | 0 .../dataflow/summaries-checks/dummy.py | 0 .../dataflow/summaries-checks/invalid-spec.expected | 0 .../dataflow/summaries-checks/invalid-spec.ql | 0 .../dataflow/summaries-checks/missing-attribute-content.expected | 0 .../dataflow/summaries-checks/missing-attribute-content.ql | 0 .../dataflow/summaries/InlineTaintTest.expected | 0 .../dataflow/summaries/InlineTaintTest.ql | 0 .../dataflow/summaries/NormalTaintTrackingTest.expected | 0 .../dataflow/summaries/NormalTaintTrackingTest.ql | 0 .../dataflow/summaries/TestSummaries.qll | 0 .../dataflow/summaries/conflicting_summaries.py | 0 .../dataflow/summaries/extracted_package/__init__.py | 0 .../dataflow/summaries/extracted_package/functions.py | 0 .../dataflow/summaries/summaries.expected | 0 .../dataflow/summaries/summaries.py | 0 .../dataflow/summaries/summaries.ql | 0 .../dataflow/tainttracking/TestTaintLib.qll | 0 .../dataflow/tainttracking/basic/GlobalTaintTracking.expected | 0 .../dataflow/tainttracking/basic/GlobalTaintTracking.ql | 0 .../dataflow/tainttracking/basic/LocalTaintStep.expected | 0 .../dataflow/tainttracking/basic/LocalTaintStep.ql | 0 .../dataflow/tainttracking/basic/test.py | 0 .../tainttracking/commonSanitizer/InlineTaintTest.expected | 0 .../dataflow/tainttracking/commonSanitizer/InlineTaintTest.ql | 0 .../tainttracking/commonSanitizer/test_string_const_compare.py | 0 .../tainttracking/customSanitizer/InlineTaintTest.expected | 0 .../dataflow/tainttracking/customSanitizer/InlineTaintTest.ql | 0 .../dataflow/tainttracking/customSanitizer/test.py | 0 .../dataflow/tainttracking/customSanitizer/test_logical.py | 0 .../dataflow/tainttracking/customSanitizer/test_reference.py | 0 .../defaultAdditionalTaintStep-py3/InlineTaintTest.expected | 0 .../defaultAdditionalTaintStep-py3/InlineTaintTest.ql | 0 .../dataflow/tainttracking/defaultAdditionalTaintStep-py3/options | 0 .../defaultAdditionalTaintStep-py3/test_collections.py | 0 .../tainttracking/defaultAdditionalTaintStep-py3/test_pathlib.py | 0 .../tainttracking/defaultAdditionalTaintStep-py3/test_string.py | 0 .../defaultAdditionalTaintStep-py3/test_unpacking.py | 0 .../defaultAdditionalTaintStep/InlineTaintTest.expected | 0 .../tainttracking/defaultAdditionalTaintStep/InlineTaintTest.ql | 0 .../tainttracking/defaultAdditionalTaintStep/test_async.py | 0 .../tainttracking/defaultAdditionalTaintStep/test_attr.py | 0 .../tainttracking/defaultAdditionalTaintStep/test_collections.py | 0 .../dataflow/tainttracking/defaultAdditionalTaintStep/test_for.py | 0 .../tainttracking/defaultAdditionalTaintStep/test_string.py | 0 .../tainttracking/defaultAdditionalTaintStep/test_unpacking.py | 0 .../tainttracking/defaultAdditionalTaintStep/test_with.py | 0 .../tainttracking/generator-flow/InlineTaintTest.expected | 0 .../dataflow/tainttracking/generator-flow/InlineTaintTest.ql | 0 .../tainttracking/generator-flow/NormalDataflowTest.expected | 0 .../dataflow/tainttracking/generator-flow/NormalDataflowTest.ql | 0 .../dataflow/tainttracking/generator-flow/test_dataflow.py | 0 .../dataflow/tainttracking/generator-flow/test_taint.py | 0 .../dataflow/tainttracking/taintlib.py | 0 .../tainttracking/unwanted-global-flow/InlineTaintTest.expected | 0 .../tainttracking/unwanted-global-flow/InlineTaintTest.ql | 0 .../dataflow/tainttracking/unwanted-global-flow/test.py | 0 .../test/{experimental => library-tests}/dataflow/testConfig.qll | 0 .../{experimental => library-tests}/dataflow/testTaintConfig.qll | 0 .../ql/test/{experimental => library-tests}/dataflow/testlib.py | 0 .../dataflow/typetracking-summaries/TestSummaries.qll | 0 .../dataflow/typetracking-summaries/summaries.py | 0 .../dataflow/typetracking-summaries/tracked.expected | 0 .../dataflow/typetracking-summaries/tracked.ql | 0 .../dataflow/typetracking/attribute_tests.py | 0 .../dataflow/typetracking/content_test.py | 0 .../dataflow/typetracking/import_as_attr.py | 0 .../dataflow/typetracking/import_as_attr_dotted.py | 0 .../dataflow/typetracking/moduleattr.expected | 0 .../dataflow/typetracking/moduleattr.ql | 0 .../dataflow/typetracking/multiple_callables.py | 0 .../dataflow/typetracking/mymodule.py | 0 .../{experimental => library-tests}/dataflow/typetracking/test.py | 0 .../dataflow/typetracking/tracked.expected | 0 .../dataflow/typetracking/tracked.ql | 0 .../dataflow/typetracking_imports/README.md | 0 .../dataflow/typetracking_imports/highlight_problem.expected | 0 .../dataflow/typetracking_imports/highlight_problem.ql | 0 .../dataflow/typetracking_imports/options | 0 .../dataflow/typetracking_imports/pkg/__init__.py | 0 .../dataflow/typetracking_imports/pkg/alias_only_direct.py | 0 .../dataflow/typetracking_imports/pkg/alias_problem.py | 0 .../dataflow/typetracking_imports/pkg/alias_problem_fixed.py | 0 .../dataflow/typetracking_imports/pkg/alias_star.py | 0 .../dataflow/typetracking_imports/pkg/foo_def.py | 0 .../dataflow/typetracking_imports/pkg/other.py | 0 .../dataflow/typetracking_imports/pkg/problem_absolute_import.py | 0 .../dataflow/typetracking_imports/pkg/use.py | 0 .../dataflow/typetracking_imports/pkg/works_absolute_import.py | 0 .../dataflow/typetracking_imports/tracked.expected | 0 .../dataflow/typetracking_imports/tracked.qlref | 0 .../dataflow/use-use-flow/read_explosion.py | 0 .../dataflow/use-use-flow/use-use-counts.expected | 0 .../dataflow/use-use-flow/use-use-counts.ql | 0 .../ql/test/{experimental => library-tests}/dataflow/validTest.py | 0 .../dataflow/variable-capture/CaptureTest.expected | 0 .../dataflow/variable-capture/CaptureTest.ql | 0 .../dataflow/variable-capture/by_value.py | 0 .../variable-capture/dataflow-capture-consistency.expected | 0 .../dataflow/variable-capture/dataflow-capture-consistency.ql | 0 .../dataflow/variable-capture/dict.py | 0 .../dataflow/variable-capture/global.py | 0 .../dataflow/variable-capture/in.py | 0 .../dataflow/variable-capture/nonlocal.py | 0 .../dataflow/variable-capture/test_collections.py | 0 .../dataflow/variable-capture/test_fields.py | 0 .../dataflow/variable-capture/test_library_calls.py | 0 260 files changed, 0 insertions(+), 0 deletions(-) rename python/ql/test/{experimental => library-tests}/dataflow/TestUtil/DataflowQueryTest.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/TestUtil/FlowTest.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/TestUtil/LocalFlowStepTest.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/TestUtil/MaximalFlowTest.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/TestUtil/NormalDataflowTest.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/TestUtil/NormalTaintTrackingTest.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/TestUtil/RoutingTest.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/TestUtil/UnresolvedCalls.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/allFlowsConfig.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/callGraph.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/callGraph.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/callGraphSinks.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/callGraphSinks.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/callGraphSources.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/callGraphSources.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/global.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/global.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/globalStep.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/globalStep.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/local.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/local.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/localFlowStepTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/localFlowStepTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/localStep.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/localStep.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/maximalFlowTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/maximalFlowTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/maximalFlows.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/maximalFlows.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/maximalFlowsConfig.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/sinks.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/sinks.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/sources.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/sources.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/basic/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/callGraphConfig.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/callgraph_crosstalk/Arguments.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/callgraph_crosstalk/Arguments.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/callgraph_crosstalk/options (100%) rename python/ql/test/{experimental => library-tests}/dataflow/callgraph_crosstalk/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/calls/DataFlowCallTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/calls/DataFlowCallTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/calls/new_cls_param.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/calls/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/consistency/class_scope.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/consistency/modeling-consistency.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/consistency/modeling-consistency.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/consistency/module.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/consistency/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage-py2/argumentRoutingTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage-py2/argumentRoutingTest.qlref (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage-py2/classes.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage-py2/options (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage-py3/argumentRoutingTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage-py3/argumentRoutingTest.qlref (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage-py3/classes.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage-py3/options (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/NormalDataflowTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/NormalDataflowTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/argumentPassing.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/argumentPassing_bad_flow_test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/argumentRoutingTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/argumentRoutingTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/classes.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/datamodel.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/localFlow.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/localFlow.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/loops.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/module_level.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/coverage/test_builtins.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/def-use-flow/def_use_counts.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/def-use-flow/def_use_counts.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/def-use-flow/def_use_flow.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/enclosing-callable/EnclosingCallable.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/enclosing-callable/EnclosingCallable.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/enclosing-callable/class_example.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/enclosing-callable/generator.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/exceptions/NormalDataflowTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/exceptions/NormalDataflowTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/exceptions/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/exceptions/test_group.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/fieldflow/NormalDataflowTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/fieldflow/NormalDataflowTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/fieldflow/UnresolvedCalls.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/fieldflow/UnresolvedCalls.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/fieldflow/options (100%) rename python/ql/test/{experimental => library-tests}/dataflow/fieldflow/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/fieldflow/test_dict.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/fieldflow/test_global.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/global-flow/accesses.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/global-flow/accesses.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/global-flow/known.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/global-flow/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/deux.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/global.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/global.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/one.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/test1.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/test2.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/test3.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/three.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/trois.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/two.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/import-star/un.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/match/NormalDataflowTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/match/NormalDataflowTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/match/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/method-calls/test.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/method-calls/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/method-calls/test.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/model-summaries/InlineTaintTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/model-summaries/InlineTaintTest.ext.yml (100%) rename python/ql/test/{experimental => library-tests}/dataflow/model-summaries/InlineTaintTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/model-summaries/NormalDataflowTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/model-summaries/NormalDataflowTest.ext.yml (100%) rename python/ql/test/{experimental => library-tests}/dataflow/model-summaries/NormalDataflowTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/model-summaries/model_summaries.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/module-initialization/base.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/module-initialization/localFlow.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/module-initialization/localFlow.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/module-initialization/m1.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/module-initialization/multiphase.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/module-initialization/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/module-initialization/testOnce.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/options (100%) rename python/ql/test/{experimental => library-tests}/dataflow/path-graph/PathNodes.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/path-graph/PathNodes.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/path-graph/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/pep_328/__init__.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/pep_328/package/__init__.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/pep_328/package/moduleA.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/pep_328/package/subpackage1/__init__.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/pep_328/package/subpackage1/moduleX.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/pep_328/package/subpackage1/moduleY.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/pep_328/package/subpackage2/__init__.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/pep_328/package/subpackage2/moduleZ.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/pep_328/start.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/qll-private-imports/README.md (100%) rename python/ql/test/{experimental => library-tests}/dataflow/qll-private-imports/Test.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/qll-private-imports/Test.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/qll-private-imports/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/regression/custom_dataflow.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/regression/custom_dataflow.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/regression/dataflow.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/regression/dataflow.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/regression/module.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/regression/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/sensitive-data/TestSensitiveDataSources.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/sensitive-data/TestSensitiveDataSources.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/sensitive-data/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/strange-essaflow/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/strange-essaflow/testFlow.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/strange-essaflow/testFlow.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries-checks/dummy.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries-checks/invalid-spec.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries-checks/invalid-spec.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries-checks/missing-attribute-content.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries-checks/missing-attribute-content.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/InlineTaintTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/InlineTaintTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/NormalTaintTrackingTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/NormalTaintTrackingTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/TestSummaries.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/conflicting_summaries.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/extracted_package/__init__.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/extracted_package/functions.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/summaries.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/summaries.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/summaries/summaries.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/TestTaintLib.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/basic/GlobalTaintTracking.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/basic/GlobalTaintTracking.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/basic/LocalTaintStep.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/basic/LocalTaintStep.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/basic/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/commonSanitizer/InlineTaintTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/commonSanitizer/InlineTaintTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/commonSanitizer/test_string_const_compare.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/customSanitizer/InlineTaintTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/customSanitizer/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/customSanitizer/test_logical.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/customSanitizer/test_reference.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep-py3/InlineTaintTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep-py3/InlineTaintTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep-py3/options (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_collections.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_pathlib.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_string.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_unpacking.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep/InlineTaintTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep/InlineTaintTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep/test_async.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep/test_attr.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep/test_collections.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep/test_for.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep/test_string.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep/test_unpacking.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/defaultAdditionalTaintStep/test_with.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/generator-flow/InlineTaintTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/generator-flow/InlineTaintTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/generator-flow/NormalDataflowTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/generator-flow/NormalDataflowTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/generator-flow/test_dataflow.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/generator-flow/test_taint.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/taintlib.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/unwanted-global-flow/InlineTaintTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/unwanted-global-flow/InlineTaintTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/tainttracking/unwanted-global-flow/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/testConfig.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/testTaintConfig.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/testlib.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking-summaries/TestSummaries.qll (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking-summaries/summaries.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking-summaries/tracked.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking-summaries/tracked.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/attribute_tests.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/content_test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/import_as_attr.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/import_as_attr_dotted.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/moduleattr.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/moduleattr.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/multiple_callables.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/mymodule.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/test.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/tracked.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking/tracked.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/README.md (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/highlight_problem.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/highlight_problem.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/options (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/pkg/__init__.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/pkg/alias_only_direct.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/pkg/alias_problem.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/pkg/alias_problem_fixed.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/pkg/alias_star.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/pkg/foo_def.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/pkg/other.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/pkg/problem_absolute_import.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/pkg/use.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/pkg/works_absolute_import.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/tracked.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/typetracking_imports/tracked.qlref (100%) rename python/ql/test/{experimental => library-tests}/dataflow/use-use-flow/read_explosion.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/use-use-flow/use-use-counts.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/use-use-flow/use-use-counts.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/validTest.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/CaptureTest.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/CaptureTest.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/by_value.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/dataflow-capture-consistency.expected (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/dataflow-capture-consistency.ql (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/dict.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/global.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/in.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/nonlocal.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/test_collections.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/test_fields.py (100%) rename python/ql/test/{experimental => library-tests}/dataflow/variable-capture/test_library_calls.py (100%) diff --git a/python/ql/test/experimental/dataflow/TestUtil/DataflowQueryTest.qll b/python/ql/test/library-tests/dataflow/TestUtil/DataflowQueryTest.qll similarity index 100% rename from python/ql/test/experimental/dataflow/TestUtil/DataflowQueryTest.qll rename to python/ql/test/library-tests/dataflow/TestUtil/DataflowQueryTest.qll diff --git a/python/ql/test/experimental/dataflow/TestUtil/FlowTest.qll b/python/ql/test/library-tests/dataflow/TestUtil/FlowTest.qll similarity index 100% rename from python/ql/test/experimental/dataflow/TestUtil/FlowTest.qll rename to python/ql/test/library-tests/dataflow/TestUtil/FlowTest.qll diff --git a/python/ql/test/experimental/dataflow/TestUtil/LocalFlowStepTest.qll b/python/ql/test/library-tests/dataflow/TestUtil/LocalFlowStepTest.qll similarity index 100% rename from python/ql/test/experimental/dataflow/TestUtil/LocalFlowStepTest.qll rename to python/ql/test/library-tests/dataflow/TestUtil/LocalFlowStepTest.qll diff --git a/python/ql/test/experimental/dataflow/TestUtil/MaximalFlowTest.qll b/python/ql/test/library-tests/dataflow/TestUtil/MaximalFlowTest.qll similarity index 100% rename from python/ql/test/experimental/dataflow/TestUtil/MaximalFlowTest.qll rename to python/ql/test/library-tests/dataflow/TestUtil/MaximalFlowTest.qll diff --git a/python/ql/test/experimental/dataflow/TestUtil/NormalDataflowTest.qll b/python/ql/test/library-tests/dataflow/TestUtil/NormalDataflowTest.qll similarity index 100% rename from python/ql/test/experimental/dataflow/TestUtil/NormalDataflowTest.qll rename to python/ql/test/library-tests/dataflow/TestUtil/NormalDataflowTest.qll diff --git a/python/ql/test/experimental/dataflow/TestUtil/NormalTaintTrackingTest.qll b/python/ql/test/library-tests/dataflow/TestUtil/NormalTaintTrackingTest.qll similarity index 100% rename from python/ql/test/experimental/dataflow/TestUtil/NormalTaintTrackingTest.qll rename to python/ql/test/library-tests/dataflow/TestUtil/NormalTaintTrackingTest.qll diff --git a/python/ql/test/experimental/dataflow/TestUtil/RoutingTest.qll b/python/ql/test/library-tests/dataflow/TestUtil/RoutingTest.qll similarity index 100% rename from python/ql/test/experimental/dataflow/TestUtil/RoutingTest.qll rename to python/ql/test/library-tests/dataflow/TestUtil/RoutingTest.qll diff --git a/python/ql/test/experimental/dataflow/TestUtil/UnresolvedCalls.qll b/python/ql/test/library-tests/dataflow/TestUtil/UnresolvedCalls.qll similarity index 100% rename from python/ql/test/experimental/dataflow/TestUtil/UnresolvedCalls.qll rename to python/ql/test/library-tests/dataflow/TestUtil/UnresolvedCalls.qll diff --git a/python/ql/test/experimental/dataflow/basic/allFlowsConfig.qll b/python/ql/test/library-tests/dataflow/basic/allFlowsConfig.qll similarity index 100% rename from python/ql/test/experimental/dataflow/basic/allFlowsConfig.qll rename to python/ql/test/library-tests/dataflow/basic/allFlowsConfig.qll diff --git a/python/ql/test/experimental/dataflow/basic/callGraph.expected b/python/ql/test/library-tests/dataflow/basic/callGraph.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/callGraph.expected rename to python/ql/test/library-tests/dataflow/basic/callGraph.expected diff --git a/python/ql/test/experimental/dataflow/basic/callGraph.ql b/python/ql/test/library-tests/dataflow/basic/callGraph.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/callGraph.ql rename to python/ql/test/library-tests/dataflow/basic/callGraph.ql diff --git a/python/ql/test/experimental/dataflow/basic/callGraphSinks.expected b/python/ql/test/library-tests/dataflow/basic/callGraphSinks.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/callGraphSinks.expected rename to python/ql/test/library-tests/dataflow/basic/callGraphSinks.expected diff --git a/python/ql/test/experimental/dataflow/basic/callGraphSinks.ql b/python/ql/test/library-tests/dataflow/basic/callGraphSinks.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/callGraphSinks.ql rename to python/ql/test/library-tests/dataflow/basic/callGraphSinks.ql diff --git a/python/ql/test/experimental/dataflow/basic/callGraphSources.expected b/python/ql/test/library-tests/dataflow/basic/callGraphSources.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/callGraphSources.expected rename to python/ql/test/library-tests/dataflow/basic/callGraphSources.expected diff --git a/python/ql/test/experimental/dataflow/basic/callGraphSources.ql b/python/ql/test/library-tests/dataflow/basic/callGraphSources.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/callGraphSources.ql rename to python/ql/test/library-tests/dataflow/basic/callGraphSources.ql diff --git a/python/ql/test/experimental/dataflow/basic/global.expected b/python/ql/test/library-tests/dataflow/basic/global.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/global.expected rename to python/ql/test/library-tests/dataflow/basic/global.expected diff --git a/python/ql/test/experimental/dataflow/basic/global.ql b/python/ql/test/library-tests/dataflow/basic/global.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/global.ql rename to python/ql/test/library-tests/dataflow/basic/global.ql diff --git a/python/ql/test/experimental/dataflow/basic/globalStep.expected b/python/ql/test/library-tests/dataflow/basic/globalStep.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/globalStep.expected rename to python/ql/test/library-tests/dataflow/basic/globalStep.expected diff --git a/python/ql/test/experimental/dataflow/basic/globalStep.ql b/python/ql/test/library-tests/dataflow/basic/globalStep.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/globalStep.ql rename to python/ql/test/library-tests/dataflow/basic/globalStep.ql diff --git a/python/ql/test/experimental/dataflow/basic/local.expected b/python/ql/test/library-tests/dataflow/basic/local.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/local.expected rename to python/ql/test/library-tests/dataflow/basic/local.expected diff --git a/python/ql/test/experimental/dataflow/basic/local.ql b/python/ql/test/library-tests/dataflow/basic/local.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/local.ql rename to python/ql/test/library-tests/dataflow/basic/local.ql diff --git a/python/ql/test/experimental/dataflow/basic/localFlowStepTest.expected b/python/ql/test/library-tests/dataflow/basic/localFlowStepTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/localFlowStepTest.expected rename to python/ql/test/library-tests/dataflow/basic/localFlowStepTest.expected diff --git a/python/ql/test/experimental/dataflow/basic/localFlowStepTest.ql b/python/ql/test/library-tests/dataflow/basic/localFlowStepTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/localFlowStepTest.ql rename to python/ql/test/library-tests/dataflow/basic/localFlowStepTest.ql diff --git a/python/ql/test/experimental/dataflow/basic/localStep.expected b/python/ql/test/library-tests/dataflow/basic/localStep.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/localStep.expected rename to python/ql/test/library-tests/dataflow/basic/localStep.expected diff --git a/python/ql/test/experimental/dataflow/basic/localStep.ql b/python/ql/test/library-tests/dataflow/basic/localStep.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/localStep.ql rename to python/ql/test/library-tests/dataflow/basic/localStep.ql diff --git a/python/ql/test/experimental/dataflow/basic/maximalFlowTest.expected b/python/ql/test/library-tests/dataflow/basic/maximalFlowTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/maximalFlowTest.expected rename to python/ql/test/library-tests/dataflow/basic/maximalFlowTest.expected diff --git a/python/ql/test/experimental/dataflow/basic/maximalFlowTest.ql b/python/ql/test/library-tests/dataflow/basic/maximalFlowTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/maximalFlowTest.ql rename to python/ql/test/library-tests/dataflow/basic/maximalFlowTest.ql diff --git a/python/ql/test/experimental/dataflow/basic/maximalFlows.expected b/python/ql/test/library-tests/dataflow/basic/maximalFlows.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/maximalFlows.expected rename to python/ql/test/library-tests/dataflow/basic/maximalFlows.expected diff --git a/python/ql/test/experimental/dataflow/basic/maximalFlows.ql b/python/ql/test/library-tests/dataflow/basic/maximalFlows.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/maximalFlows.ql rename to python/ql/test/library-tests/dataflow/basic/maximalFlows.ql diff --git a/python/ql/test/experimental/dataflow/basic/maximalFlowsConfig.qll b/python/ql/test/library-tests/dataflow/basic/maximalFlowsConfig.qll similarity index 100% rename from python/ql/test/experimental/dataflow/basic/maximalFlowsConfig.qll rename to python/ql/test/library-tests/dataflow/basic/maximalFlowsConfig.qll diff --git a/python/ql/test/experimental/dataflow/basic/sinks.expected b/python/ql/test/library-tests/dataflow/basic/sinks.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/sinks.expected rename to python/ql/test/library-tests/dataflow/basic/sinks.expected diff --git a/python/ql/test/experimental/dataflow/basic/sinks.ql b/python/ql/test/library-tests/dataflow/basic/sinks.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/sinks.ql rename to python/ql/test/library-tests/dataflow/basic/sinks.ql diff --git a/python/ql/test/experimental/dataflow/basic/sources.expected b/python/ql/test/library-tests/dataflow/basic/sources.expected similarity index 100% rename from python/ql/test/experimental/dataflow/basic/sources.expected rename to python/ql/test/library-tests/dataflow/basic/sources.expected diff --git a/python/ql/test/experimental/dataflow/basic/sources.ql b/python/ql/test/library-tests/dataflow/basic/sources.ql similarity index 100% rename from python/ql/test/experimental/dataflow/basic/sources.ql rename to python/ql/test/library-tests/dataflow/basic/sources.ql diff --git a/python/ql/test/experimental/dataflow/basic/test.py b/python/ql/test/library-tests/dataflow/basic/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/basic/test.py rename to python/ql/test/library-tests/dataflow/basic/test.py diff --git a/python/ql/test/experimental/dataflow/callGraphConfig.qll b/python/ql/test/library-tests/dataflow/callGraphConfig.qll similarity index 100% rename from python/ql/test/experimental/dataflow/callGraphConfig.qll rename to python/ql/test/library-tests/dataflow/callGraphConfig.qll diff --git a/python/ql/test/experimental/dataflow/callgraph_crosstalk/Arguments.expected b/python/ql/test/library-tests/dataflow/callgraph_crosstalk/Arguments.expected similarity index 100% rename from python/ql/test/experimental/dataflow/callgraph_crosstalk/Arguments.expected rename to python/ql/test/library-tests/dataflow/callgraph_crosstalk/Arguments.expected diff --git a/python/ql/test/experimental/dataflow/callgraph_crosstalk/Arguments.ql b/python/ql/test/library-tests/dataflow/callgraph_crosstalk/Arguments.ql similarity index 100% rename from python/ql/test/experimental/dataflow/callgraph_crosstalk/Arguments.ql rename to python/ql/test/library-tests/dataflow/callgraph_crosstalk/Arguments.ql diff --git a/python/ql/test/experimental/dataflow/callgraph_crosstalk/options b/python/ql/test/library-tests/dataflow/callgraph_crosstalk/options similarity index 100% rename from python/ql/test/experimental/dataflow/callgraph_crosstalk/options rename to python/ql/test/library-tests/dataflow/callgraph_crosstalk/options diff --git a/python/ql/test/experimental/dataflow/callgraph_crosstalk/test.py b/python/ql/test/library-tests/dataflow/callgraph_crosstalk/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/callgraph_crosstalk/test.py rename to python/ql/test/library-tests/dataflow/callgraph_crosstalk/test.py diff --git a/python/ql/test/experimental/dataflow/calls/DataFlowCallTest.expected b/python/ql/test/library-tests/dataflow/calls/DataFlowCallTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/calls/DataFlowCallTest.expected rename to python/ql/test/library-tests/dataflow/calls/DataFlowCallTest.expected diff --git a/python/ql/test/experimental/dataflow/calls/DataFlowCallTest.ql b/python/ql/test/library-tests/dataflow/calls/DataFlowCallTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/calls/DataFlowCallTest.ql rename to python/ql/test/library-tests/dataflow/calls/DataFlowCallTest.ql diff --git a/python/ql/test/experimental/dataflow/calls/new_cls_param.py b/python/ql/test/library-tests/dataflow/calls/new_cls_param.py similarity index 100% rename from python/ql/test/experimental/dataflow/calls/new_cls_param.py rename to python/ql/test/library-tests/dataflow/calls/new_cls_param.py diff --git a/python/ql/test/experimental/dataflow/calls/test.py b/python/ql/test/library-tests/dataflow/calls/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/calls/test.py rename to python/ql/test/library-tests/dataflow/calls/test.py diff --git a/python/ql/test/experimental/dataflow/consistency/class_scope.py b/python/ql/test/library-tests/dataflow/consistency/class_scope.py similarity index 100% rename from python/ql/test/experimental/dataflow/consistency/class_scope.py rename to python/ql/test/library-tests/dataflow/consistency/class_scope.py diff --git a/python/ql/test/experimental/dataflow/consistency/modeling-consistency.expected b/python/ql/test/library-tests/dataflow/consistency/modeling-consistency.expected similarity index 100% rename from python/ql/test/experimental/dataflow/consistency/modeling-consistency.expected rename to python/ql/test/library-tests/dataflow/consistency/modeling-consistency.expected diff --git a/python/ql/test/experimental/dataflow/consistency/modeling-consistency.ql b/python/ql/test/library-tests/dataflow/consistency/modeling-consistency.ql similarity index 100% rename from python/ql/test/experimental/dataflow/consistency/modeling-consistency.ql rename to python/ql/test/library-tests/dataflow/consistency/modeling-consistency.ql diff --git a/python/ql/test/experimental/dataflow/consistency/module.py b/python/ql/test/library-tests/dataflow/consistency/module.py similarity index 100% rename from python/ql/test/experimental/dataflow/consistency/module.py rename to python/ql/test/library-tests/dataflow/consistency/module.py diff --git a/python/ql/test/experimental/dataflow/consistency/test.py b/python/ql/test/library-tests/dataflow/consistency/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/consistency/test.py rename to python/ql/test/library-tests/dataflow/consistency/test.py diff --git a/python/ql/test/experimental/dataflow/coverage-py2/argumentRoutingTest.expected b/python/ql/test/library-tests/dataflow/coverage-py2/argumentRoutingTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/coverage-py2/argumentRoutingTest.expected rename to python/ql/test/library-tests/dataflow/coverage-py2/argumentRoutingTest.expected diff --git a/python/ql/test/experimental/dataflow/coverage-py2/argumentRoutingTest.qlref b/python/ql/test/library-tests/dataflow/coverage-py2/argumentRoutingTest.qlref similarity index 100% rename from python/ql/test/experimental/dataflow/coverage-py2/argumentRoutingTest.qlref rename to python/ql/test/library-tests/dataflow/coverage-py2/argumentRoutingTest.qlref diff --git a/python/ql/test/experimental/dataflow/coverage-py2/classes.py b/python/ql/test/library-tests/dataflow/coverage-py2/classes.py similarity index 100% rename from python/ql/test/experimental/dataflow/coverage-py2/classes.py rename to python/ql/test/library-tests/dataflow/coverage-py2/classes.py diff --git a/python/ql/test/experimental/dataflow/coverage-py2/options b/python/ql/test/library-tests/dataflow/coverage-py2/options similarity index 100% rename from python/ql/test/experimental/dataflow/coverage-py2/options rename to python/ql/test/library-tests/dataflow/coverage-py2/options diff --git a/python/ql/test/experimental/dataflow/coverage-py3/argumentRoutingTest.expected b/python/ql/test/library-tests/dataflow/coverage-py3/argumentRoutingTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/coverage-py3/argumentRoutingTest.expected rename to python/ql/test/library-tests/dataflow/coverage-py3/argumentRoutingTest.expected diff --git a/python/ql/test/experimental/dataflow/coverage-py3/argumentRoutingTest.qlref b/python/ql/test/library-tests/dataflow/coverage-py3/argumentRoutingTest.qlref similarity index 100% rename from python/ql/test/experimental/dataflow/coverage-py3/argumentRoutingTest.qlref rename to python/ql/test/library-tests/dataflow/coverage-py3/argumentRoutingTest.qlref diff --git a/python/ql/test/experimental/dataflow/coverage-py3/classes.py b/python/ql/test/library-tests/dataflow/coverage-py3/classes.py similarity index 100% rename from python/ql/test/experimental/dataflow/coverage-py3/classes.py rename to python/ql/test/library-tests/dataflow/coverage-py3/classes.py diff --git a/python/ql/test/experimental/dataflow/coverage-py3/options b/python/ql/test/library-tests/dataflow/coverage-py3/options similarity index 100% rename from python/ql/test/experimental/dataflow/coverage-py3/options rename to python/ql/test/library-tests/dataflow/coverage-py3/options diff --git a/python/ql/test/experimental/dataflow/coverage/NormalDataflowTest.expected b/python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/NormalDataflowTest.expected rename to python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.expected diff --git a/python/ql/test/experimental/dataflow/coverage/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/NormalDataflowTest.ql rename to python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.ql diff --git a/python/ql/test/experimental/dataflow/coverage/argumentPassing.py b/python/ql/test/library-tests/dataflow/coverage/argumentPassing.py similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/argumentPassing.py rename to python/ql/test/library-tests/dataflow/coverage/argumentPassing.py diff --git a/python/ql/test/experimental/dataflow/coverage/argumentPassing_bad_flow_test.py b/python/ql/test/library-tests/dataflow/coverage/argumentPassing_bad_flow_test.py similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/argumentPassing_bad_flow_test.py rename to python/ql/test/library-tests/dataflow/coverage/argumentPassing_bad_flow_test.py diff --git a/python/ql/test/experimental/dataflow/coverage/argumentRoutingTest.expected b/python/ql/test/library-tests/dataflow/coverage/argumentRoutingTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/argumentRoutingTest.expected rename to python/ql/test/library-tests/dataflow/coverage/argumentRoutingTest.expected diff --git a/python/ql/test/experimental/dataflow/coverage/argumentRoutingTest.ql b/python/ql/test/library-tests/dataflow/coverage/argumentRoutingTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/argumentRoutingTest.ql rename to python/ql/test/library-tests/dataflow/coverage/argumentRoutingTest.ql diff --git a/python/ql/test/experimental/dataflow/coverage/classes.py b/python/ql/test/library-tests/dataflow/coverage/classes.py similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/classes.py rename to python/ql/test/library-tests/dataflow/coverage/classes.py diff --git a/python/ql/test/experimental/dataflow/coverage/datamodel.py b/python/ql/test/library-tests/dataflow/coverage/datamodel.py similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/datamodel.py rename to python/ql/test/library-tests/dataflow/coverage/datamodel.py diff --git a/python/ql/test/experimental/dataflow/coverage/localFlow.expected b/python/ql/test/library-tests/dataflow/coverage/localFlow.expected similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/localFlow.expected rename to python/ql/test/library-tests/dataflow/coverage/localFlow.expected diff --git a/python/ql/test/experimental/dataflow/coverage/localFlow.ql b/python/ql/test/library-tests/dataflow/coverage/localFlow.ql similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/localFlow.ql rename to python/ql/test/library-tests/dataflow/coverage/localFlow.ql diff --git a/python/ql/test/experimental/dataflow/coverage/loops.py b/python/ql/test/library-tests/dataflow/coverage/loops.py similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/loops.py rename to python/ql/test/library-tests/dataflow/coverage/loops.py diff --git a/python/ql/test/experimental/dataflow/coverage/module_level.py b/python/ql/test/library-tests/dataflow/coverage/module_level.py similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/module_level.py rename to python/ql/test/library-tests/dataflow/coverage/module_level.py diff --git a/python/ql/test/experimental/dataflow/coverage/test.py b/python/ql/test/library-tests/dataflow/coverage/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/test.py rename to python/ql/test/library-tests/dataflow/coverage/test.py diff --git a/python/ql/test/experimental/dataflow/coverage/test_builtins.py b/python/ql/test/library-tests/dataflow/coverage/test_builtins.py similarity index 100% rename from python/ql/test/experimental/dataflow/coverage/test_builtins.py rename to python/ql/test/library-tests/dataflow/coverage/test_builtins.py diff --git a/python/ql/test/experimental/dataflow/def-use-flow/def_use_counts.expected b/python/ql/test/library-tests/dataflow/def-use-flow/def_use_counts.expected similarity index 100% rename from python/ql/test/experimental/dataflow/def-use-flow/def_use_counts.expected rename to python/ql/test/library-tests/dataflow/def-use-flow/def_use_counts.expected diff --git a/python/ql/test/experimental/dataflow/def-use-flow/def_use_counts.ql b/python/ql/test/library-tests/dataflow/def-use-flow/def_use_counts.ql similarity index 100% rename from python/ql/test/experimental/dataflow/def-use-flow/def_use_counts.ql rename to python/ql/test/library-tests/dataflow/def-use-flow/def_use_counts.ql diff --git a/python/ql/test/experimental/dataflow/def-use-flow/def_use_flow.py b/python/ql/test/library-tests/dataflow/def-use-flow/def_use_flow.py similarity index 100% rename from python/ql/test/experimental/dataflow/def-use-flow/def_use_flow.py rename to python/ql/test/library-tests/dataflow/def-use-flow/def_use_flow.py diff --git a/python/ql/test/experimental/dataflow/enclosing-callable/EnclosingCallable.expected b/python/ql/test/library-tests/dataflow/enclosing-callable/EnclosingCallable.expected similarity index 100% rename from python/ql/test/experimental/dataflow/enclosing-callable/EnclosingCallable.expected rename to python/ql/test/library-tests/dataflow/enclosing-callable/EnclosingCallable.expected diff --git a/python/ql/test/experimental/dataflow/enclosing-callable/EnclosingCallable.ql b/python/ql/test/library-tests/dataflow/enclosing-callable/EnclosingCallable.ql similarity index 100% rename from python/ql/test/experimental/dataflow/enclosing-callable/EnclosingCallable.ql rename to python/ql/test/library-tests/dataflow/enclosing-callable/EnclosingCallable.ql diff --git a/python/ql/test/experimental/dataflow/enclosing-callable/class_example.py b/python/ql/test/library-tests/dataflow/enclosing-callable/class_example.py similarity index 100% rename from python/ql/test/experimental/dataflow/enclosing-callable/class_example.py rename to python/ql/test/library-tests/dataflow/enclosing-callable/class_example.py diff --git a/python/ql/test/experimental/dataflow/enclosing-callable/generator.py b/python/ql/test/library-tests/dataflow/enclosing-callable/generator.py similarity index 100% rename from python/ql/test/experimental/dataflow/enclosing-callable/generator.py rename to python/ql/test/library-tests/dataflow/enclosing-callable/generator.py diff --git a/python/ql/test/experimental/dataflow/exceptions/NormalDataflowTest.expected b/python/ql/test/library-tests/dataflow/exceptions/NormalDataflowTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/exceptions/NormalDataflowTest.expected rename to python/ql/test/library-tests/dataflow/exceptions/NormalDataflowTest.expected diff --git a/python/ql/test/experimental/dataflow/exceptions/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/exceptions/NormalDataflowTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/exceptions/NormalDataflowTest.ql rename to python/ql/test/library-tests/dataflow/exceptions/NormalDataflowTest.ql diff --git a/python/ql/test/experimental/dataflow/exceptions/test.py b/python/ql/test/library-tests/dataflow/exceptions/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/exceptions/test.py rename to python/ql/test/library-tests/dataflow/exceptions/test.py diff --git a/python/ql/test/experimental/dataflow/exceptions/test_group.py b/python/ql/test/library-tests/dataflow/exceptions/test_group.py similarity index 100% rename from python/ql/test/experimental/dataflow/exceptions/test_group.py rename to python/ql/test/library-tests/dataflow/exceptions/test_group.py diff --git a/python/ql/test/experimental/dataflow/fieldflow/NormalDataflowTest.expected b/python/ql/test/library-tests/dataflow/fieldflow/NormalDataflowTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/fieldflow/NormalDataflowTest.expected rename to python/ql/test/library-tests/dataflow/fieldflow/NormalDataflowTest.expected diff --git a/python/ql/test/experimental/dataflow/fieldflow/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/fieldflow/NormalDataflowTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/fieldflow/NormalDataflowTest.ql rename to python/ql/test/library-tests/dataflow/fieldflow/NormalDataflowTest.ql diff --git a/python/ql/test/experimental/dataflow/fieldflow/UnresolvedCalls.expected b/python/ql/test/library-tests/dataflow/fieldflow/UnresolvedCalls.expected similarity index 100% rename from python/ql/test/experimental/dataflow/fieldflow/UnresolvedCalls.expected rename to python/ql/test/library-tests/dataflow/fieldflow/UnresolvedCalls.expected diff --git a/python/ql/test/experimental/dataflow/fieldflow/UnresolvedCalls.ql b/python/ql/test/library-tests/dataflow/fieldflow/UnresolvedCalls.ql similarity index 100% rename from python/ql/test/experimental/dataflow/fieldflow/UnresolvedCalls.ql rename to python/ql/test/library-tests/dataflow/fieldflow/UnresolvedCalls.ql diff --git a/python/ql/test/experimental/dataflow/fieldflow/options b/python/ql/test/library-tests/dataflow/fieldflow/options similarity index 100% rename from python/ql/test/experimental/dataflow/fieldflow/options rename to python/ql/test/library-tests/dataflow/fieldflow/options diff --git a/python/ql/test/experimental/dataflow/fieldflow/test.py b/python/ql/test/library-tests/dataflow/fieldflow/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/fieldflow/test.py rename to python/ql/test/library-tests/dataflow/fieldflow/test.py diff --git a/python/ql/test/experimental/dataflow/fieldflow/test_dict.py b/python/ql/test/library-tests/dataflow/fieldflow/test_dict.py similarity index 100% rename from python/ql/test/experimental/dataflow/fieldflow/test_dict.py rename to python/ql/test/library-tests/dataflow/fieldflow/test_dict.py diff --git a/python/ql/test/experimental/dataflow/fieldflow/test_global.py b/python/ql/test/library-tests/dataflow/fieldflow/test_global.py similarity index 100% rename from python/ql/test/experimental/dataflow/fieldflow/test_global.py rename to python/ql/test/library-tests/dataflow/fieldflow/test_global.py diff --git a/python/ql/test/experimental/dataflow/global-flow/accesses.expected b/python/ql/test/library-tests/dataflow/global-flow/accesses.expected similarity index 100% rename from python/ql/test/experimental/dataflow/global-flow/accesses.expected rename to python/ql/test/library-tests/dataflow/global-flow/accesses.expected diff --git a/python/ql/test/experimental/dataflow/global-flow/accesses.ql b/python/ql/test/library-tests/dataflow/global-flow/accesses.ql similarity index 100% rename from python/ql/test/experimental/dataflow/global-flow/accesses.ql rename to python/ql/test/library-tests/dataflow/global-flow/accesses.ql diff --git a/python/ql/test/experimental/dataflow/global-flow/known.py b/python/ql/test/library-tests/dataflow/global-flow/known.py similarity index 100% rename from python/ql/test/experimental/dataflow/global-flow/known.py rename to python/ql/test/library-tests/dataflow/global-flow/known.py diff --git a/python/ql/test/experimental/dataflow/global-flow/test.py b/python/ql/test/library-tests/dataflow/global-flow/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/global-flow/test.py rename to python/ql/test/library-tests/dataflow/global-flow/test.py diff --git a/python/ql/test/experimental/dataflow/import-star/deux.py b/python/ql/test/library-tests/dataflow/import-star/deux.py similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/deux.py rename to python/ql/test/library-tests/dataflow/import-star/deux.py diff --git a/python/ql/test/experimental/dataflow/import-star/global.expected b/python/ql/test/library-tests/dataflow/import-star/global.expected similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/global.expected rename to python/ql/test/library-tests/dataflow/import-star/global.expected diff --git a/python/ql/test/experimental/dataflow/import-star/global.ql b/python/ql/test/library-tests/dataflow/import-star/global.ql similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/global.ql rename to python/ql/test/library-tests/dataflow/import-star/global.ql diff --git a/python/ql/test/experimental/dataflow/import-star/one.py b/python/ql/test/library-tests/dataflow/import-star/one.py similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/one.py rename to python/ql/test/library-tests/dataflow/import-star/one.py diff --git a/python/ql/test/experimental/dataflow/import-star/test1.py b/python/ql/test/library-tests/dataflow/import-star/test1.py similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/test1.py rename to python/ql/test/library-tests/dataflow/import-star/test1.py diff --git a/python/ql/test/experimental/dataflow/import-star/test2.py b/python/ql/test/library-tests/dataflow/import-star/test2.py similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/test2.py rename to python/ql/test/library-tests/dataflow/import-star/test2.py diff --git a/python/ql/test/experimental/dataflow/import-star/test3.py b/python/ql/test/library-tests/dataflow/import-star/test3.py similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/test3.py rename to python/ql/test/library-tests/dataflow/import-star/test3.py diff --git a/python/ql/test/experimental/dataflow/import-star/three.py b/python/ql/test/library-tests/dataflow/import-star/three.py similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/three.py rename to python/ql/test/library-tests/dataflow/import-star/three.py diff --git a/python/ql/test/experimental/dataflow/import-star/trois.py b/python/ql/test/library-tests/dataflow/import-star/trois.py similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/trois.py rename to python/ql/test/library-tests/dataflow/import-star/trois.py diff --git a/python/ql/test/experimental/dataflow/import-star/two.py b/python/ql/test/library-tests/dataflow/import-star/two.py similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/two.py rename to python/ql/test/library-tests/dataflow/import-star/two.py diff --git a/python/ql/test/experimental/dataflow/import-star/un.py b/python/ql/test/library-tests/dataflow/import-star/un.py similarity index 100% rename from python/ql/test/experimental/dataflow/import-star/un.py rename to python/ql/test/library-tests/dataflow/import-star/un.py diff --git a/python/ql/test/experimental/dataflow/match/NormalDataflowTest.expected b/python/ql/test/library-tests/dataflow/match/NormalDataflowTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/match/NormalDataflowTest.expected rename to python/ql/test/library-tests/dataflow/match/NormalDataflowTest.expected diff --git a/python/ql/test/experimental/dataflow/match/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/match/NormalDataflowTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/match/NormalDataflowTest.ql rename to python/ql/test/library-tests/dataflow/match/NormalDataflowTest.ql diff --git a/python/ql/test/experimental/dataflow/match/test.py b/python/ql/test/library-tests/dataflow/match/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/match/test.py rename to python/ql/test/library-tests/dataflow/match/test.py diff --git a/python/ql/test/experimental/dataflow/method-calls/test.expected b/python/ql/test/library-tests/dataflow/method-calls/test.expected similarity index 100% rename from python/ql/test/experimental/dataflow/method-calls/test.expected rename to python/ql/test/library-tests/dataflow/method-calls/test.expected diff --git a/python/ql/test/experimental/dataflow/method-calls/test.py b/python/ql/test/library-tests/dataflow/method-calls/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/method-calls/test.py rename to python/ql/test/library-tests/dataflow/method-calls/test.py diff --git a/python/ql/test/experimental/dataflow/method-calls/test.ql b/python/ql/test/library-tests/dataflow/method-calls/test.ql similarity index 100% rename from python/ql/test/experimental/dataflow/method-calls/test.ql rename to python/ql/test/library-tests/dataflow/method-calls/test.ql diff --git a/python/ql/test/experimental/dataflow/model-summaries/InlineTaintTest.expected b/python/ql/test/library-tests/dataflow/model-summaries/InlineTaintTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/model-summaries/InlineTaintTest.expected rename to python/ql/test/library-tests/dataflow/model-summaries/InlineTaintTest.expected diff --git a/python/ql/test/experimental/dataflow/model-summaries/InlineTaintTest.ext.yml b/python/ql/test/library-tests/dataflow/model-summaries/InlineTaintTest.ext.yml similarity index 100% rename from python/ql/test/experimental/dataflow/model-summaries/InlineTaintTest.ext.yml rename to python/ql/test/library-tests/dataflow/model-summaries/InlineTaintTest.ext.yml diff --git a/python/ql/test/experimental/dataflow/model-summaries/InlineTaintTest.ql b/python/ql/test/library-tests/dataflow/model-summaries/InlineTaintTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/model-summaries/InlineTaintTest.ql rename to python/ql/test/library-tests/dataflow/model-summaries/InlineTaintTest.ql diff --git a/python/ql/test/experimental/dataflow/model-summaries/NormalDataflowTest.expected b/python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/model-summaries/NormalDataflowTest.expected rename to python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.expected diff --git a/python/ql/test/experimental/dataflow/model-summaries/NormalDataflowTest.ext.yml b/python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.ext.yml similarity index 100% rename from python/ql/test/experimental/dataflow/model-summaries/NormalDataflowTest.ext.yml rename to python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.ext.yml diff --git a/python/ql/test/experimental/dataflow/model-summaries/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/model-summaries/NormalDataflowTest.ql rename to python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.ql diff --git a/python/ql/test/experimental/dataflow/model-summaries/model_summaries.py b/python/ql/test/library-tests/dataflow/model-summaries/model_summaries.py similarity index 100% rename from python/ql/test/experimental/dataflow/model-summaries/model_summaries.py rename to python/ql/test/library-tests/dataflow/model-summaries/model_summaries.py diff --git a/python/ql/test/experimental/dataflow/module-initialization/base.py b/python/ql/test/library-tests/dataflow/module-initialization/base.py similarity index 100% rename from python/ql/test/experimental/dataflow/module-initialization/base.py rename to python/ql/test/library-tests/dataflow/module-initialization/base.py diff --git a/python/ql/test/experimental/dataflow/module-initialization/localFlow.expected b/python/ql/test/library-tests/dataflow/module-initialization/localFlow.expected similarity index 100% rename from python/ql/test/experimental/dataflow/module-initialization/localFlow.expected rename to python/ql/test/library-tests/dataflow/module-initialization/localFlow.expected diff --git a/python/ql/test/experimental/dataflow/module-initialization/localFlow.ql b/python/ql/test/library-tests/dataflow/module-initialization/localFlow.ql similarity index 100% rename from python/ql/test/experimental/dataflow/module-initialization/localFlow.ql rename to python/ql/test/library-tests/dataflow/module-initialization/localFlow.ql diff --git a/python/ql/test/experimental/dataflow/module-initialization/m1.py b/python/ql/test/library-tests/dataflow/module-initialization/m1.py similarity index 100% rename from python/ql/test/experimental/dataflow/module-initialization/m1.py rename to python/ql/test/library-tests/dataflow/module-initialization/m1.py diff --git a/python/ql/test/experimental/dataflow/module-initialization/multiphase.py b/python/ql/test/library-tests/dataflow/module-initialization/multiphase.py similarity index 100% rename from python/ql/test/experimental/dataflow/module-initialization/multiphase.py rename to python/ql/test/library-tests/dataflow/module-initialization/multiphase.py diff --git a/python/ql/test/experimental/dataflow/module-initialization/test.py b/python/ql/test/library-tests/dataflow/module-initialization/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/module-initialization/test.py rename to python/ql/test/library-tests/dataflow/module-initialization/test.py diff --git a/python/ql/test/experimental/dataflow/module-initialization/testOnce.py b/python/ql/test/library-tests/dataflow/module-initialization/testOnce.py similarity index 100% rename from python/ql/test/experimental/dataflow/module-initialization/testOnce.py rename to python/ql/test/library-tests/dataflow/module-initialization/testOnce.py diff --git a/python/ql/test/experimental/dataflow/options b/python/ql/test/library-tests/dataflow/options similarity index 100% rename from python/ql/test/experimental/dataflow/options rename to python/ql/test/library-tests/dataflow/options diff --git a/python/ql/test/experimental/dataflow/path-graph/PathNodes.expected b/python/ql/test/library-tests/dataflow/path-graph/PathNodes.expected similarity index 100% rename from python/ql/test/experimental/dataflow/path-graph/PathNodes.expected rename to python/ql/test/library-tests/dataflow/path-graph/PathNodes.expected diff --git a/python/ql/test/experimental/dataflow/path-graph/PathNodes.ql b/python/ql/test/library-tests/dataflow/path-graph/PathNodes.ql similarity index 100% rename from python/ql/test/experimental/dataflow/path-graph/PathNodes.ql rename to python/ql/test/library-tests/dataflow/path-graph/PathNodes.ql diff --git a/python/ql/test/experimental/dataflow/path-graph/test.py b/python/ql/test/library-tests/dataflow/path-graph/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/path-graph/test.py rename to python/ql/test/library-tests/dataflow/path-graph/test.py diff --git a/python/ql/test/experimental/dataflow/pep_328/__init__.py b/python/ql/test/library-tests/dataflow/pep_328/__init__.py similarity index 100% rename from python/ql/test/experimental/dataflow/pep_328/__init__.py rename to python/ql/test/library-tests/dataflow/pep_328/__init__.py diff --git a/python/ql/test/experimental/dataflow/pep_328/package/__init__.py b/python/ql/test/library-tests/dataflow/pep_328/package/__init__.py similarity index 100% rename from python/ql/test/experimental/dataflow/pep_328/package/__init__.py rename to python/ql/test/library-tests/dataflow/pep_328/package/__init__.py diff --git a/python/ql/test/experimental/dataflow/pep_328/package/moduleA.py b/python/ql/test/library-tests/dataflow/pep_328/package/moduleA.py similarity index 100% rename from python/ql/test/experimental/dataflow/pep_328/package/moduleA.py rename to python/ql/test/library-tests/dataflow/pep_328/package/moduleA.py diff --git a/python/ql/test/experimental/dataflow/pep_328/package/subpackage1/__init__.py b/python/ql/test/library-tests/dataflow/pep_328/package/subpackage1/__init__.py similarity index 100% rename from python/ql/test/experimental/dataflow/pep_328/package/subpackage1/__init__.py rename to python/ql/test/library-tests/dataflow/pep_328/package/subpackage1/__init__.py diff --git a/python/ql/test/experimental/dataflow/pep_328/package/subpackage1/moduleX.py b/python/ql/test/library-tests/dataflow/pep_328/package/subpackage1/moduleX.py similarity index 100% rename from python/ql/test/experimental/dataflow/pep_328/package/subpackage1/moduleX.py rename to python/ql/test/library-tests/dataflow/pep_328/package/subpackage1/moduleX.py diff --git a/python/ql/test/experimental/dataflow/pep_328/package/subpackage1/moduleY.py b/python/ql/test/library-tests/dataflow/pep_328/package/subpackage1/moduleY.py similarity index 100% rename from python/ql/test/experimental/dataflow/pep_328/package/subpackage1/moduleY.py rename to python/ql/test/library-tests/dataflow/pep_328/package/subpackage1/moduleY.py diff --git a/python/ql/test/experimental/dataflow/pep_328/package/subpackage2/__init__.py b/python/ql/test/library-tests/dataflow/pep_328/package/subpackage2/__init__.py similarity index 100% rename from python/ql/test/experimental/dataflow/pep_328/package/subpackage2/__init__.py rename to python/ql/test/library-tests/dataflow/pep_328/package/subpackage2/__init__.py diff --git a/python/ql/test/experimental/dataflow/pep_328/package/subpackage2/moduleZ.py b/python/ql/test/library-tests/dataflow/pep_328/package/subpackage2/moduleZ.py similarity index 100% rename from python/ql/test/experimental/dataflow/pep_328/package/subpackage2/moduleZ.py rename to python/ql/test/library-tests/dataflow/pep_328/package/subpackage2/moduleZ.py diff --git a/python/ql/test/experimental/dataflow/pep_328/start.py b/python/ql/test/library-tests/dataflow/pep_328/start.py similarity index 100% rename from python/ql/test/experimental/dataflow/pep_328/start.py rename to python/ql/test/library-tests/dataflow/pep_328/start.py diff --git a/python/ql/test/experimental/dataflow/qll-private-imports/README.md b/python/ql/test/library-tests/dataflow/qll-private-imports/README.md similarity index 100% rename from python/ql/test/experimental/dataflow/qll-private-imports/README.md rename to python/ql/test/library-tests/dataflow/qll-private-imports/README.md diff --git a/python/ql/test/experimental/dataflow/qll-private-imports/Test.expected b/python/ql/test/library-tests/dataflow/qll-private-imports/Test.expected similarity index 100% rename from python/ql/test/experimental/dataflow/qll-private-imports/Test.expected rename to python/ql/test/library-tests/dataflow/qll-private-imports/Test.expected diff --git a/python/ql/test/experimental/dataflow/qll-private-imports/Test.ql b/python/ql/test/library-tests/dataflow/qll-private-imports/Test.ql similarity index 100% rename from python/ql/test/experimental/dataflow/qll-private-imports/Test.ql rename to python/ql/test/library-tests/dataflow/qll-private-imports/Test.ql diff --git a/python/ql/test/experimental/dataflow/qll-private-imports/test.py b/python/ql/test/library-tests/dataflow/qll-private-imports/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/qll-private-imports/test.py rename to python/ql/test/library-tests/dataflow/qll-private-imports/test.py diff --git a/python/ql/test/experimental/dataflow/regression/custom_dataflow.expected b/python/ql/test/library-tests/dataflow/regression/custom_dataflow.expected similarity index 100% rename from python/ql/test/experimental/dataflow/regression/custom_dataflow.expected rename to python/ql/test/library-tests/dataflow/regression/custom_dataflow.expected diff --git a/python/ql/test/experimental/dataflow/regression/custom_dataflow.ql b/python/ql/test/library-tests/dataflow/regression/custom_dataflow.ql similarity index 100% rename from python/ql/test/experimental/dataflow/regression/custom_dataflow.ql rename to python/ql/test/library-tests/dataflow/regression/custom_dataflow.ql diff --git a/python/ql/test/experimental/dataflow/regression/dataflow.expected b/python/ql/test/library-tests/dataflow/regression/dataflow.expected similarity index 100% rename from python/ql/test/experimental/dataflow/regression/dataflow.expected rename to python/ql/test/library-tests/dataflow/regression/dataflow.expected diff --git a/python/ql/test/experimental/dataflow/regression/dataflow.ql b/python/ql/test/library-tests/dataflow/regression/dataflow.ql similarity index 100% rename from python/ql/test/experimental/dataflow/regression/dataflow.ql rename to python/ql/test/library-tests/dataflow/regression/dataflow.ql diff --git a/python/ql/test/experimental/dataflow/regression/module.py b/python/ql/test/library-tests/dataflow/regression/module.py similarity index 100% rename from python/ql/test/experimental/dataflow/regression/module.py rename to python/ql/test/library-tests/dataflow/regression/module.py diff --git a/python/ql/test/experimental/dataflow/regression/test.py b/python/ql/test/library-tests/dataflow/regression/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/regression/test.py rename to python/ql/test/library-tests/dataflow/regression/test.py diff --git a/python/ql/test/experimental/dataflow/sensitive-data/TestSensitiveDataSources.expected b/python/ql/test/library-tests/dataflow/sensitive-data/TestSensitiveDataSources.expected similarity index 100% rename from python/ql/test/experimental/dataflow/sensitive-data/TestSensitiveDataSources.expected rename to python/ql/test/library-tests/dataflow/sensitive-data/TestSensitiveDataSources.expected diff --git a/python/ql/test/experimental/dataflow/sensitive-data/TestSensitiveDataSources.ql b/python/ql/test/library-tests/dataflow/sensitive-data/TestSensitiveDataSources.ql similarity index 100% rename from python/ql/test/experimental/dataflow/sensitive-data/TestSensitiveDataSources.ql rename to python/ql/test/library-tests/dataflow/sensitive-data/TestSensitiveDataSources.ql diff --git a/python/ql/test/experimental/dataflow/sensitive-data/test.py b/python/ql/test/library-tests/dataflow/sensitive-data/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/sensitive-data/test.py rename to python/ql/test/library-tests/dataflow/sensitive-data/test.py diff --git a/python/ql/test/experimental/dataflow/strange-essaflow/test.py b/python/ql/test/library-tests/dataflow/strange-essaflow/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/strange-essaflow/test.py rename to python/ql/test/library-tests/dataflow/strange-essaflow/test.py diff --git a/python/ql/test/experimental/dataflow/strange-essaflow/testFlow.expected b/python/ql/test/library-tests/dataflow/strange-essaflow/testFlow.expected similarity index 100% rename from python/ql/test/experimental/dataflow/strange-essaflow/testFlow.expected rename to python/ql/test/library-tests/dataflow/strange-essaflow/testFlow.expected diff --git a/python/ql/test/experimental/dataflow/strange-essaflow/testFlow.ql b/python/ql/test/library-tests/dataflow/strange-essaflow/testFlow.ql similarity index 100% rename from python/ql/test/experimental/dataflow/strange-essaflow/testFlow.ql rename to python/ql/test/library-tests/dataflow/strange-essaflow/testFlow.ql diff --git a/python/ql/test/experimental/dataflow/summaries-checks/dummy.py b/python/ql/test/library-tests/dataflow/summaries-checks/dummy.py similarity index 100% rename from python/ql/test/experimental/dataflow/summaries-checks/dummy.py rename to python/ql/test/library-tests/dataflow/summaries-checks/dummy.py diff --git a/python/ql/test/experimental/dataflow/summaries-checks/invalid-spec.expected b/python/ql/test/library-tests/dataflow/summaries-checks/invalid-spec.expected similarity index 100% rename from python/ql/test/experimental/dataflow/summaries-checks/invalid-spec.expected rename to python/ql/test/library-tests/dataflow/summaries-checks/invalid-spec.expected diff --git a/python/ql/test/experimental/dataflow/summaries-checks/invalid-spec.ql b/python/ql/test/library-tests/dataflow/summaries-checks/invalid-spec.ql similarity index 100% rename from python/ql/test/experimental/dataflow/summaries-checks/invalid-spec.ql rename to python/ql/test/library-tests/dataflow/summaries-checks/invalid-spec.ql diff --git a/python/ql/test/experimental/dataflow/summaries-checks/missing-attribute-content.expected b/python/ql/test/library-tests/dataflow/summaries-checks/missing-attribute-content.expected similarity index 100% rename from python/ql/test/experimental/dataflow/summaries-checks/missing-attribute-content.expected rename to python/ql/test/library-tests/dataflow/summaries-checks/missing-attribute-content.expected diff --git a/python/ql/test/experimental/dataflow/summaries-checks/missing-attribute-content.ql b/python/ql/test/library-tests/dataflow/summaries-checks/missing-attribute-content.ql similarity index 100% rename from python/ql/test/experimental/dataflow/summaries-checks/missing-attribute-content.ql rename to python/ql/test/library-tests/dataflow/summaries-checks/missing-attribute-content.ql diff --git a/python/ql/test/experimental/dataflow/summaries/InlineTaintTest.expected b/python/ql/test/library-tests/dataflow/summaries/InlineTaintTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/InlineTaintTest.expected rename to python/ql/test/library-tests/dataflow/summaries/InlineTaintTest.expected diff --git a/python/ql/test/experimental/dataflow/summaries/InlineTaintTest.ql b/python/ql/test/library-tests/dataflow/summaries/InlineTaintTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/InlineTaintTest.ql rename to python/ql/test/library-tests/dataflow/summaries/InlineTaintTest.ql diff --git a/python/ql/test/experimental/dataflow/summaries/NormalTaintTrackingTest.expected b/python/ql/test/library-tests/dataflow/summaries/NormalTaintTrackingTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/NormalTaintTrackingTest.expected rename to python/ql/test/library-tests/dataflow/summaries/NormalTaintTrackingTest.expected diff --git a/python/ql/test/experimental/dataflow/summaries/NormalTaintTrackingTest.ql b/python/ql/test/library-tests/dataflow/summaries/NormalTaintTrackingTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/NormalTaintTrackingTest.ql rename to python/ql/test/library-tests/dataflow/summaries/NormalTaintTrackingTest.ql diff --git a/python/ql/test/experimental/dataflow/summaries/TestSummaries.qll b/python/ql/test/library-tests/dataflow/summaries/TestSummaries.qll similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/TestSummaries.qll rename to python/ql/test/library-tests/dataflow/summaries/TestSummaries.qll diff --git a/python/ql/test/experimental/dataflow/summaries/conflicting_summaries.py b/python/ql/test/library-tests/dataflow/summaries/conflicting_summaries.py similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/conflicting_summaries.py rename to python/ql/test/library-tests/dataflow/summaries/conflicting_summaries.py diff --git a/python/ql/test/experimental/dataflow/summaries/extracted_package/__init__.py b/python/ql/test/library-tests/dataflow/summaries/extracted_package/__init__.py similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/extracted_package/__init__.py rename to python/ql/test/library-tests/dataflow/summaries/extracted_package/__init__.py diff --git a/python/ql/test/experimental/dataflow/summaries/extracted_package/functions.py b/python/ql/test/library-tests/dataflow/summaries/extracted_package/functions.py similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/extracted_package/functions.py rename to python/ql/test/library-tests/dataflow/summaries/extracted_package/functions.py diff --git a/python/ql/test/experimental/dataflow/summaries/summaries.expected b/python/ql/test/library-tests/dataflow/summaries/summaries.expected similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/summaries.expected rename to python/ql/test/library-tests/dataflow/summaries/summaries.expected diff --git a/python/ql/test/experimental/dataflow/summaries/summaries.py b/python/ql/test/library-tests/dataflow/summaries/summaries.py similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/summaries.py rename to python/ql/test/library-tests/dataflow/summaries/summaries.py diff --git a/python/ql/test/experimental/dataflow/summaries/summaries.ql b/python/ql/test/library-tests/dataflow/summaries/summaries.ql similarity index 100% rename from python/ql/test/experimental/dataflow/summaries/summaries.ql rename to python/ql/test/library-tests/dataflow/summaries/summaries.ql diff --git a/python/ql/test/experimental/dataflow/tainttracking/TestTaintLib.qll b/python/ql/test/library-tests/dataflow/tainttracking/TestTaintLib.qll similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/TestTaintLib.qll rename to python/ql/test/library-tests/dataflow/tainttracking/TestTaintLib.qll diff --git a/python/ql/test/experimental/dataflow/tainttracking/basic/GlobalTaintTracking.expected b/python/ql/test/library-tests/dataflow/tainttracking/basic/GlobalTaintTracking.expected similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/basic/GlobalTaintTracking.expected rename to python/ql/test/library-tests/dataflow/tainttracking/basic/GlobalTaintTracking.expected diff --git a/python/ql/test/experimental/dataflow/tainttracking/basic/GlobalTaintTracking.ql b/python/ql/test/library-tests/dataflow/tainttracking/basic/GlobalTaintTracking.ql similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/basic/GlobalTaintTracking.ql rename to python/ql/test/library-tests/dataflow/tainttracking/basic/GlobalTaintTracking.ql diff --git a/python/ql/test/experimental/dataflow/tainttracking/basic/LocalTaintStep.expected b/python/ql/test/library-tests/dataflow/tainttracking/basic/LocalTaintStep.expected similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/basic/LocalTaintStep.expected rename to python/ql/test/library-tests/dataflow/tainttracking/basic/LocalTaintStep.expected diff --git a/python/ql/test/experimental/dataflow/tainttracking/basic/LocalTaintStep.ql b/python/ql/test/library-tests/dataflow/tainttracking/basic/LocalTaintStep.ql similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/basic/LocalTaintStep.ql rename to python/ql/test/library-tests/dataflow/tainttracking/basic/LocalTaintStep.ql diff --git a/python/ql/test/experimental/dataflow/tainttracking/basic/test.py b/python/ql/test/library-tests/dataflow/tainttracking/basic/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/basic/test.py rename to python/ql/test/library-tests/dataflow/tainttracking/basic/test.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/commonSanitizer/InlineTaintTest.expected b/python/ql/test/library-tests/dataflow/tainttracking/commonSanitizer/InlineTaintTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/commonSanitizer/InlineTaintTest.expected rename to python/ql/test/library-tests/dataflow/tainttracking/commonSanitizer/InlineTaintTest.expected diff --git a/python/ql/test/experimental/dataflow/tainttracking/commonSanitizer/InlineTaintTest.ql b/python/ql/test/library-tests/dataflow/tainttracking/commonSanitizer/InlineTaintTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/commonSanitizer/InlineTaintTest.ql rename to python/ql/test/library-tests/dataflow/tainttracking/commonSanitizer/InlineTaintTest.ql diff --git a/python/ql/test/experimental/dataflow/tainttracking/commonSanitizer/test_string_const_compare.py b/python/ql/test/library-tests/dataflow/tainttracking/commonSanitizer/test_string_const_compare.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/commonSanitizer/test_string_const_compare.py rename to python/ql/test/library-tests/dataflow/tainttracking/commonSanitizer/test_string_const_compare.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected b/python/ql/test/library-tests/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected rename to python/ql/test/library-tests/dataflow/tainttracking/customSanitizer/InlineTaintTest.expected diff --git a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.ql b/python/ql/test/library-tests/dataflow/tainttracking/customSanitizer/InlineTaintTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/customSanitizer/InlineTaintTest.ql rename to python/ql/test/library-tests/dataflow/tainttracking/customSanitizer/InlineTaintTest.ql diff --git a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test.py b/python/ql/test/library-tests/dataflow/tainttracking/customSanitizer/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test.py rename to python/ql/test/library-tests/dataflow/tainttracking/customSanitizer/test.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_logical.py b/python/ql/test/library-tests/dataflow/tainttracking/customSanitizer/test_logical.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_logical.py rename to python/ql/test/library-tests/dataflow/tainttracking/customSanitizer/test_logical.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_reference.py b/python/ql/test/library-tests/dataflow/tainttracking/customSanitizer/test_reference.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/customSanitizer/test_reference.py rename to python/ql/test/library-tests/dataflow/tainttracking/customSanitizer/test_reference.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/InlineTaintTest.expected b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/InlineTaintTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/InlineTaintTest.expected rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/InlineTaintTest.expected diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/InlineTaintTest.ql b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/InlineTaintTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/InlineTaintTest.ql rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/InlineTaintTest.ql diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/options b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/options similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/options rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/options diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_collections.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_collections.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_collections.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_collections.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_pathlib.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_pathlib.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_pathlib.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_pathlib.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_string.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_string.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_string.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_string.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_unpacking.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_unpacking.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_unpacking.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_unpacking.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/InlineTaintTest.expected b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/InlineTaintTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/InlineTaintTest.expected rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/InlineTaintTest.expected diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/InlineTaintTest.ql b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/InlineTaintTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/InlineTaintTest.ql rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/InlineTaintTest.ql diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_async.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_async.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_async.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_async.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_attr.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_attr.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_attr.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_attr.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_collections.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_collections.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_collections.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_collections.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_for.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_for.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_for.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_for.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_string.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_string.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_string.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_string.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_unpacking.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_unpacking.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_unpacking.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_unpacking.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_with.py b/python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_with.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_with.py rename to python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_with.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/generator-flow/InlineTaintTest.expected b/python/ql/test/library-tests/dataflow/tainttracking/generator-flow/InlineTaintTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/generator-flow/InlineTaintTest.expected rename to python/ql/test/library-tests/dataflow/tainttracking/generator-flow/InlineTaintTest.expected diff --git a/python/ql/test/experimental/dataflow/tainttracking/generator-flow/InlineTaintTest.ql b/python/ql/test/library-tests/dataflow/tainttracking/generator-flow/InlineTaintTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/generator-flow/InlineTaintTest.ql rename to python/ql/test/library-tests/dataflow/tainttracking/generator-flow/InlineTaintTest.ql diff --git a/python/ql/test/experimental/dataflow/tainttracking/generator-flow/NormalDataflowTest.expected b/python/ql/test/library-tests/dataflow/tainttracking/generator-flow/NormalDataflowTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/generator-flow/NormalDataflowTest.expected rename to python/ql/test/library-tests/dataflow/tainttracking/generator-flow/NormalDataflowTest.expected diff --git a/python/ql/test/experimental/dataflow/tainttracking/generator-flow/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/tainttracking/generator-flow/NormalDataflowTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/generator-flow/NormalDataflowTest.ql rename to python/ql/test/library-tests/dataflow/tainttracking/generator-flow/NormalDataflowTest.ql diff --git a/python/ql/test/experimental/dataflow/tainttracking/generator-flow/test_dataflow.py b/python/ql/test/library-tests/dataflow/tainttracking/generator-flow/test_dataflow.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/generator-flow/test_dataflow.py rename to python/ql/test/library-tests/dataflow/tainttracking/generator-flow/test_dataflow.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/generator-flow/test_taint.py b/python/ql/test/library-tests/dataflow/tainttracking/generator-flow/test_taint.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/generator-flow/test_taint.py rename to python/ql/test/library-tests/dataflow/tainttracking/generator-flow/test_taint.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/taintlib.py b/python/ql/test/library-tests/dataflow/tainttracking/taintlib.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/taintlib.py rename to python/ql/test/library-tests/dataflow/tainttracking/taintlib.py diff --git a/python/ql/test/experimental/dataflow/tainttracking/unwanted-global-flow/InlineTaintTest.expected b/python/ql/test/library-tests/dataflow/tainttracking/unwanted-global-flow/InlineTaintTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/unwanted-global-flow/InlineTaintTest.expected rename to python/ql/test/library-tests/dataflow/tainttracking/unwanted-global-flow/InlineTaintTest.expected diff --git a/python/ql/test/experimental/dataflow/tainttracking/unwanted-global-flow/InlineTaintTest.ql b/python/ql/test/library-tests/dataflow/tainttracking/unwanted-global-flow/InlineTaintTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/unwanted-global-flow/InlineTaintTest.ql rename to python/ql/test/library-tests/dataflow/tainttracking/unwanted-global-flow/InlineTaintTest.ql diff --git a/python/ql/test/experimental/dataflow/tainttracking/unwanted-global-flow/test.py b/python/ql/test/library-tests/dataflow/tainttracking/unwanted-global-flow/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/tainttracking/unwanted-global-flow/test.py rename to python/ql/test/library-tests/dataflow/tainttracking/unwanted-global-flow/test.py diff --git a/python/ql/test/experimental/dataflow/testConfig.qll b/python/ql/test/library-tests/dataflow/testConfig.qll similarity index 100% rename from python/ql/test/experimental/dataflow/testConfig.qll rename to python/ql/test/library-tests/dataflow/testConfig.qll diff --git a/python/ql/test/experimental/dataflow/testTaintConfig.qll b/python/ql/test/library-tests/dataflow/testTaintConfig.qll similarity index 100% rename from python/ql/test/experimental/dataflow/testTaintConfig.qll rename to python/ql/test/library-tests/dataflow/testTaintConfig.qll diff --git a/python/ql/test/experimental/dataflow/testlib.py b/python/ql/test/library-tests/dataflow/testlib.py similarity index 100% rename from python/ql/test/experimental/dataflow/testlib.py rename to python/ql/test/library-tests/dataflow/testlib.py diff --git a/python/ql/test/experimental/dataflow/typetracking-summaries/TestSummaries.qll b/python/ql/test/library-tests/dataflow/typetracking-summaries/TestSummaries.qll similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking-summaries/TestSummaries.qll rename to python/ql/test/library-tests/dataflow/typetracking-summaries/TestSummaries.qll diff --git a/python/ql/test/experimental/dataflow/typetracking-summaries/summaries.py b/python/ql/test/library-tests/dataflow/typetracking-summaries/summaries.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking-summaries/summaries.py rename to python/ql/test/library-tests/dataflow/typetracking-summaries/summaries.py diff --git a/python/ql/test/experimental/dataflow/typetracking-summaries/tracked.expected b/python/ql/test/library-tests/dataflow/typetracking-summaries/tracked.expected similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking-summaries/tracked.expected rename to python/ql/test/library-tests/dataflow/typetracking-summaries/tracked.expected diff --git a/python/ql/test/experimental/dataflow/typetracking-summaries/tracked.ql b/python/ql/test/library-tests/dataflow/typetracking-summaries/tracked.ql similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking-summaries/tracked.ql rename to python/ql/test/library-tests/dataflow/typetracking-summaries/tracked.ql diff --git a/python/ql/test/experimental/dataflow/typetracking/attribute_tests.py b/python/ql/test/library-tests/dataflow/typetracking/attribute_tests.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/attribute_tests.py rename to python/ql/test/library-tests/dataflow/typetracking/attribute_tests.py diff --git a/python/ql/test/experimental/dataflow/typetracking/content_test.py b/python/ql/test/library-tests/dataflow/typetracking/content_test.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/content_test.py rename to python/ql/test/library-tests/dataflow/typetracking/content_test.py diff --git a/python/ql/test/experimental/dataflow/typetracking/import_as_attr.py b/python/ql/test/library-tests/dataflow/typetracking/import_as_attr.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/import_as_attr.py rename to python/ql/test/library-tests/dataflow/typetracking/import_as_attr.py diff --git a/python/ql/test/experimental/dataflow/typetracking/import_as_attr_dotted.py b/python/ql/test/library-tests/dataflow/typetracking/import_as_attr_dotted.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/import_as_attr_dotted.py rename to python/ql/test/library-tests/dataflow/typetracking/import_as_attr_dotted.py diff --git a/python/ql/test/experimental/dataflow/typetracking/moduleattr.expected b/python/ql/test/library-tests/dataflow/typetracking/moduleattr.expected similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/moduleattr.expected rename to python/ql/test/library-tests/dataflow/typetracking/moduleattr.expected diff --git a/python/ql/test/experimental/dataflow/typetracking/moduleattr.ql b/python/ql/test/library-tests/dataflow/typetracking/moduleattr.ql similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/moduleattr.ql rename to python/ql/test/library-tests/dataflow/typetracking/moduleattr.ql diff --git a/python/ql/test/experimental/dataflow/typetracking/multiple_callables.py b/python/ql/test/library-tests/dataflow/typetracking/multiple_callables.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/multiple_callables.py rename to python/ql/test/library-tests/dataflow/typetracking/multiple_callables.py diff --git a/python/ql/test/experimental/dataflow/typetracking/mymodule.py b/python/ql/test/library-tests/dataflow/typetracking/mymodule.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/mymodule.py rename to python/ql/test/library-tests/dataflow/typetracking/mymodule.py diff --git a/python/ql/test/experimental/dataflow/typetracking/test.py b/python/ql/test/library-tests/dataflow/typetracking/test.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/test.py rename to python/ql/test/library-tests/dataflow/typetracking/test.py diff --git a/python/ql/test/experimental/dataflow/typetracking/tracked.expected b/python/ql/test/library-tests/dataflow/typetracking/tracked.expected similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/tracked.expected rename to python/ql/test/library-tests/dataflow/typetracking/tracked.expected diff --git a/python/ql/test/experimental/dataflow/typetracking/tracked.ql b/python/ql/test/library-tests/dataflow/typetracking/tracked.ql similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking/tracked.ql rename to python/ql/test/library-tests/dataflow/typetracking/tracked.ql diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/README.md b/python/ql/test/library-tests/dataflow/typetracking_imports/README.md similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/README.md rename to python/ql/test/library-tests/dataflow/typetracking_imports/README.md diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/highlight_problem.expected b/python/ql/test/library-tests/dataflow/typetracking_imports/highlight_problem.expected similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/highlight_problem.expected rename to python/ql/test/library-tests/dataflow/typetracking_imports/highlight_problem.expected diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/highlight_problem.ql b/python/ql/test/library-tests/dataflow/typetracking_imports/highlight_problem.ql similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/highlight_problem.ql rename to python/ql/test/library-tests/dataflow/typetracking_imports/highlight_problem.ql diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/options b/python/ql/test/library-tests/dataflow/typetracking_imports/options similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/options rename to python/ql/test/library-tests/dataflow/typetracking_imports/options diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/pkg/__init__.py b/python/ql/test/library-tests/dataflow/typetracking_imports/pkg/__init__.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/pkg/__init__.py rename to python/ql/test/library-tests/dataflow/typetracking_imports/pkg/__init__.py diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/pkg/alias_only_direct.py b/python/ql/test/library-tests/dataflow/typetracking_imports/pkg/alias_only_direct.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/pkg/alias_only_direct.py rename to python/ql/test/library-tests/dataflow/typetracking_imports/pkg/alias_only_direct.py diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/pkg/alias_problem.py b/python/ql/test/library-tests/dataflow/typetracking_imports/pkg/alias_problem.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/pkg/alias_problem.py rename to python/ql/test/library-tests/dataflow/typetracking_imports/pkg/alias_problem.py diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/pkg/alias_problem_fixed.py b/python/ql/test/library-tests/dataflow/typetracking_imports/pkg/alias_problem_fixed.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/pkg/alias_problem_fixed.py rename to python/ql/test/library-tests/dataflow/typetracking_imports/pkg/alias_problem_fixed.py diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/pkg/alias_star.py b/python/ql/test/library-tests/dataflow/typetracking_imports/pkg/alias_star.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/pkg/alias_star.py rename to python/ql/test/library-tests/dataflow/typetracking_imports/pkg/alias_star.py diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/pkg/foo_def.py b/python/ql/test/library-tests/dataflow/typetracking_imports/pkg/foo_def.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/pkg/foo_def.py rename to python/ql/test/library-tests/dataflow/typetracking_imports/pkg/foo_def.py diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/pkg/other.py b/python/ql/test/library-tests/dataflow/typetracking_imports/pkg/other.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/pkg/other.py rename to python/ql/test/library-tests/dataflow/typetracking_imports/pkg/other.py diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/pkg/problem_absolute_import.py b/python/ql/test/library-tests/dataflow/typetracking_imports/pkg/problem_absolute_import.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/pkg/problem_absolute_import.py rename to python/ql/test/library-tests/dataflow/typetracking_imports/pkg/problem_absolute_import.py diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/pkg/use.py b/python/ql/test/library-tests/dataflow/typetracking_imports/pkg/use.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/pkg/use.py rename to python/ql/test/library-tests/dataflow/typetracking_imports/pkg/use.py diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/pkg/works_absolute_import.py b/python/ql/test/library-tests/dataflow/typetracking_imports/pkg/works_absolute_import.py similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/pkg/works_absolute_import.py rename to python/ql/test/library-tests/dataflow/typetracking_imports/pkg/works_absolute_import.py diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/tracked.expected b/python/ql/test/library-tests/dataflow/typetracking_imports/tracked.expected similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/tracked.expected rename to python/ql/test/library-tests/dataflow/typetracking_imports/tracked.expected diff --git a/python/ql/test/experimental/dataflow/typetracking_imports/tracked.qlref b/python/ql/test/library-tests/dataflow/typetracking_imports/tracked.qlref similarity index 100% rename from python/ql/test/experimental/dataflow/typetracking_imports/tracked.qlref rename to python/ql/test/library-tests/dataflow/typetracking_imports/tracked.qlref diff --git a/python/ql/test/experimental/dataflow/use-use-flow/read_explosion.py b/python/ql/test/library-tests/dataflow/use-use-flow/read_explosion.py similarity index 100% rename from python/ql/test/experimental/dataflow/use-use-flow/read_explosion.py rename to python/ql/test/library-tests/dataflow/use-use-flow/read_explosion.py diff --git a/python/ql/test/experimental/dataflow/use-use-flow/use-use-counts.expected b/python/ql/test/library-tests/dataflow/use-use-flow/use-use-counts.expected similarity index 100% rename from python/ql/test/experimental/dataflow/use-use-flow/use-use-counts.expected rename to python/ql/test/library-tests/dataflow/use-use-flow/use-use-counts.expected diff --git a/python/ql/test/experimental/dataflow/use-use-flow/use-use-counts.ql b/python/ql/test/library-tests/dataflow/use-use-flow/use-use-counts.ql similarity index 100% rename from python/ql/test/experimental/dataflow/use-use-flow/use-use-counts.ql rename to python/ql/test/library-tests/dataflow/use-use-flow/use-use-counts.ql diff --git a/python/ql/test/experimental/dataflow/validTest.py b/python/ql/test/library-tests/dataflow/validTest.py similarity index 100% rename from python/ql/test/experimental/dataflow/validTest.py rename to python/ql/test/library-tests/dataflow/validTest.py diff --git a/python/ql/test/experimental/dataflow/variable-capture/CaptureTest.expected b/python/ql/test/library-tests/dataflow/variable-capture/CaptureTest.expected similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/CaptureTest.expected rename to python/ql/test/library-tests/dataflow/variable-capture/CaptureTest.expected diff --git a/python/ql/test/experimental/dataflow/variable-capture/CaptureTest.ql b/python/ql/test/library-tests/dataflow/variable-capture/CaptureTest.ql similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/CaptureTest.ql rename to python/ql/test/library-tests/dataflow/variable-capture/CaptureTest.ql diff --git a/python/ql/test/experimental/dataflow/variable-capture/by_value.py b/python/ql/test/library-tests/dataflow/variable-capture/by_value.py similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/by_value.py rename to python/ql/test/library-tests/dataflow/variable-capture/by_value.py diff --git a/python/ql/test/experimental/dataflow/variable-capture/dataflow-capture-consistency.expected b/python/ql/test/library-tests/dataflow/variable-capture/dataflow-capture-consistency.expected similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/dataflow-capture-consistency.expected rename to python/ql/test/library-tests/dataflow/variable-capture/dataflow-capture-consistency.expected diff --git a/python/ql/test/experimental/dataflow/variable-capture/dataflow-capture-consistency.ql b/python/ql/test/library-tests/dataflow/variable-capture/dataflow-capture-consistency.ql similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/dataflow-capture-consistency.ql rename to python/ql/test/library-tests/dataflow/variable-capture/dataflow-capture-consistency.ql diff --git a/python/ql/test/experimental/dataflow/variable-capture/dict.py b/python/ql/test/library-tests/dataflow/variable-capture/dict.py similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/dict.py rename to python/ql/test/library-tests/dataflow/variable-capture/dict.py diff --git a/python/ql/test/experimental/dataflow/variable-capture/global.py b/python/ql/test/library-tests/dataflow/variable-capture/global.py similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/global.py rename to python/ql/test/library-tests/dataflow/variable-capture/global.py diff --git a/python/ql/test/experimental/dataflow/variable-capture/in.py b/python/ql/test/library-tests/dataflow/variable-capture/in.py similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/in.py rename to python/ql/test/library-tests/dataflow/variable-capture/in.py diff --git a/python/ql/test/experimental/dataflow/variable-capture/nonlocal.py b/python/ql/test/library-tests/dataflow/variable-capture/nonlocal.py similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/nonlocal.py rename to python/ql/test/library-tests/dataflow/variable-capture/nonlocal.py diff --git a/python/ql/test/experimental/dataflow/variable-capture/test_collections.py b/python/ql/test/library-tests/dataflow/variable-capture/test_collections.py similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/test_collections.py rename to python/ql/test/library-tests/dataflow/variable-capture/test_collections.py diff --git a/python/ql/test/experimental/dataflow/variable-capture/test_fields.py b/python/ql/test/library-tests/dataflow/variable-capture/test_fields.py similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/test_fields.py rename to python/ql/test/library-tests/dataflow/variable-capture/test_fields.py diff --git a/python/ql/test/experimental/dataflow/variable-capture/test_library_calls.py b/python/ql/test/library-tests/dataflow/variable-capture/test_library_calls.py similarity index 100% rename from python/ql/test/experimental/dataflow/variable-capture/test_library_calls.py rename to python/ql/test/library-tests/dataflow/variable-capture/test_library_calls.py From e0e405bb313095649ffd7578062575533656916f Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 19 Apr 2024 10:39:45 +0200 Subject: [PATCH 2/4] Python: replace dataflow-test location in files --- config/identical-files.json | 6 +++--- .../lib/semmle/python/dataflow/new/SensitiveDataSources.qll | 2 +- .../semmle/python/dataflow/new/internal/DataFlowPublic.qll | 2 +- python/ql/test/library-tests/dataflow/coverage/datamodel.py | 2 +- python/ql/test/library-tests/dataflow/coverage/test.py | 2 +- .../ql/test/library-tests/frameworks/stdlib-py3/Decoding.py | 2 +- .../ql/test/library-tests/frameworks/stdlib-py3/Encoding.py | 2 +- python/ql/test/library-tests/frameworks/stdlib/Decoding.py | 2 +- python/ql/test/library-tests/frameworks/stdlib/Encoding.py | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/identical-files.json b/config/identical-files.json index a8b1368f1af..d810e30c0c8 100644 --- a/config/identical-files.json +++ b/config/identical-files.json @@ -362,7 +362,7 @@ "java/ql/lib/semmle/code/java/security/internal/EncryptionKeySizes.qll" ], "Python model summaries test extension": [ - "python/ql/test/experimental/dataflow/model-summaries/InlineTaintTest.ext.yml", - "python/ql/test/experimental/dataflow/model-summaries/NormalDataflowTest.ext.yml" + "python/ql/test/library-tests/dataflow/model-summaries/InlineTaintTest.ext.yml", + "python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.ext.yml" ] -} \ No newline at end of file +} diff --git a/python/ql/lib/semmle/python/dataflow/new/SensitiveDataSources.qll b/python/ql/lib/semmle/python/dataflow/new/SensitiveDataSources.qll index 705c4476fb1..c12358f6db9 100644 --- a/python/ql/lib/semmle/python/dataflow/new/SensitiveDataSources.qll +++ b/python/ql/lib/semmle/python/dataflow/new/SensitiveDataSources.qll @@ -89,7 +89,7 @@ private module SensitiveDataModeling { */ DataFlow::Node sensitiveLookupStringConst(SensitiveDataClassification classification) { // Note: If this is implemented with type-tracking, we will get cross-talk as - // illustrated in python/ql/test/experimental/dataflow/sensitive-data/test.py + // illustrated in python/ql/test/library-tests/dataflow/sensitive-data/test.py exists(DataFlow::LocalSourceNode source | source.asExpr().(StringLiteral).getText() = sensitiveString(classification) and source.flowsTo(result) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll index 9b9caf28ad3..4192241d619 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll @@ -638,7 +638,7 @@ newtype TContent = // name = any(AccessPathToken a).getAnArgument("Attribute") // instead we use a qltest to alert if we write a new summary in QL that uses an // attribute -- see - // python/ql/test/experimental/dataflow/summaries-checks/missing-attribute-content.ql + // python/ql/test/library-tests/dataflow/summaries-checks/missing-attribute-content.ql attr in ["re", "string", "pattern"] or // diff --git a/python/ql/test/library-tests/dataflow/coverage/datamodel.py b/python/ql/test/library-tests/dataflow/coverage/datamodel.py index 89d9b0a819a..22111a0abbd 100644 --- a/python/ql/test/library-tests/dataflow/coverage/datamodel.py +++ b/python/ql/test/library-tests/dataflow/coverage/datamodel.py @@ -6,7 +6,7 @@ # A thorough covering of methods in that document is found in classes.py. # # Intended sources should be the variable `SOURCE` and intended sinks should be -# arguments to the function `SINK` (see python/ql/test/experimental/dataflow/testConfig.qll). +# arguments to the function `SINK` (see python/ql/test/library-tests/dataflow/testConfig.qll). import sys import os diff --git a/python/ql/test/library-tests/dataflow/coverage/test.py b/python/ql/test/library-tests/dataflow/coverage/test.py index eb14fb1dd0b..a2ea9cccd67 100644 --- a/python/ql/test/library-tests/dataflow/coverage/test.py +++ b/python/ql/test/library-tests/dataflow/coverage/test.py @@ -2,7 +2,7 @@ # Headings refer to https://docs.python.org/3/reference/expressions.html, # and are selected whenever they incur dataflow. # Intended sources should be the variable `SOURCE` and intended sinks should be -# arguments to the function `SINK` (see python/ql/test/experimental/dataflow/testConfig.qll). +# arguments to the function `SINK` (see python/ql/test/library-tests/dataflow/testConfig.qll). # # Functions whose name ends with "_with_local_flow" will also be tested for local flow. # diff --git a/python/ql/test/library-tests/frameworks/stdlib-py3/Decoding.py b/python/ql/test/library-tests/frameworks/stdlib-py3/Decoding.py index 11cca46bdf7..ec82bd2f1a7 100644 --- a/python/ql/test/library-tests/frameworks/stdlib-py3/Decoding.py +++ b/python/ql/test/library-tests/frameworks/stdlib-py3/Decoding.py @@ -1,6 +1,6 @@ import base64 -# TODO: These tests should be merged with python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_string.py +# TODO: These tests should be merged with python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_string.py base64.a85decode(payload) # $ decodeInput=payload decodeOutput=base64.a85decode(..) decodeFormat=Ascii85 base64.b85decode(payload) # $ decodeInput=payload decodeOutput=base64.b85decode(..) decodeFormat=Base85 base64.decodebytes(payload) # $ decodeInput=payload decodeOutput=base64.decodebytes(..) decodeFormat=Base64 diff --git a/python/ql/test/library-tests/frameworks/stdlib-py3/Encoding.py b/python/ql/test/library-tests/frameworks/stdlib-py3/Encoding.py index 7aea6a5e579..493e22a6048 100644 --- a/python/ql/test/library-tests/frameworks/stdlib-py3/Encoding.py +++ b/python/ql/test/library-tests/frameworks/stdlib-py3/Encoding.py @@ -1,6 +1,6 @@ import base64 -# TODO: These tests should be merged with python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_string.py +# TODO: These tests should be merged with python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep-py3/test_string.py base64.a85encode(bs) # $ encodeInput=bs encodeOutput=base64.a85encode(..) encodeFormat=Ascii85 base64.b85encode(bs)# $ encodeInput=bs encodeOutput=base64.b85encode(..) encodeFormat=Base85 base64.encodebytes(bs)# $ encodeInput=bs encodeOutput=base64.encodebytes(..) encodeFormat=Base64 diff --git a/python/ql/test/library-tests/frameworks/stdlib/Decoding.py b/python/ql/test/library-tests/frameworks/stdlib/Decoding.py index a977cb2793a..6cd0be5740c 100644 --- a/python/ql/test/library-tests/frameworks/stdlib/Decoding.py +++ b/python/ql/test/library-tests/frameworks/stdlib/Decoding.py @@ -26,7 +26,7 @@ marshal.loads(payload) # $ decodeInput=payload decodeOutput=marshal.loads(..) d shelve.open(filepath) # $ decodeInput=filepath decodeOutput=shelve.open(..) decodeFormat=pickle decodeMayExecuteInput getAPathArgument=filepath shelve.open(filename=filepath) # $ decodeInput=filepath decodeOutput=shelve.open(..) decodeFormat=pickle decodeMayExecuteInput getAPathArgument=filepath -# TODO: These tests should be merged with python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_string.py +# TODO: These tests should be merged with python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_string.py base64.b64decode(payload) # $ decodeInput=payload decodeOutput=base64.b64decode(..) decodeFormat=Base64 base64.standard_b64decode(payload) # $ decodeInput=payload decodeOutput=base64.standard_b64decode(..) decodeFormat=Base64 base64.urlsafe_b64decode(payload) # $ decodeInput=payload decodeOutput=base64.urlsafe_b64decode(..) decodeFormat=Base64 diff --git a/python/ql/test/library-tests/frameworks/stdlib/Encoding.py b/python/ql/test/library-tests/frameworks/stdlib/Encoding.py index 38f4372faa2..5573709a05f 100644 --- a/python/ql/test/library-tests/frameworks/stdlib/Encoding.py +++ b/python/ql/test/library-tests/frameworks/stdlib/Encoding.py @@ -5,7 +5,7 @@ import base64 pickle.dumps(obj) # $ MISSING: encodeInput=obj encodeOutput=pickle.dumps(..) encodeFormat=pickle encodeMayExecuteInput marshal.dumps(obj) # $ MISSING: encodeInput=obj encodeOutput=marshal.dumps(..) encodeFormat=marshal encodeMayExecuteInput -# TODO: These tests should be merged with python/ql/test/experimental/dataflow/tainttracking/defaultAdditionalTaintStep/test_string.py +# TODO: These tests should be merged with python/ql/test/library-tests/dataflow/tainttracking/defaultAdditionalTaintStep/test_string.py base64.b64encode(bs) # $ encodeInput=bs encodeOutput=base64.b64encode(..) encodeFormat=Base64 base64.standard_b64encode(bs) # $ encodeInput=bs encodeOutput=base64.standard_b64encode(..) encodeFormat=Base64 base64.urlsafe_b64encode(bs) # $ encodeInput=bs encodeOutput=base64.urlsafe_b64encode(..) encodeFormat=Base64 From bb00d6919aa6b8bbf01c5a097fac3d4cde4c7cc4 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 19 Apr 2024 10:47:25 +0200 Subject: [PATCH 3/4] Python: Move dataflow TestUtil to importable location --- .../TestUtil => TestUtilities/dataflow}/DataflowQueryTest.qll | 0 .../dataflow/TestUtil => TestUtilities/dataflow}/FlowTest.qll | 0 .../TestUtil => TestUtilities/dataflow}/LocalFlowStepTest.qll | 0 .../TestUtil => TestUtilities/dataflow}/MaximalFlowTest.qll | 0 .../dataflow}/NormalDataflowTest.qll | 4 ++-- .../dataflow}/NormalTaintTrackingTest.qll | 4 ++-- .../TestUtil => TestUtilities/dataflow}/RoutingTest.qll | 0 .../TestUtil => TestUtilities/dataflow}/UnresolvedCalls.qll | 0 .../dataflow/callGraphConfig.qll | 0 .../{library-tests => TestUtilities}/dataflow/testConfig.qll | 0 .../dataflow/testTaintConfig.qll | 0 python/ql/test/experimental/meta/debug/dataflowTestPaths.ql | 2 +- .../Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.ql | 2 +- .../query-tests/Security/CWE-409/DataflowQueryTest.ql | 2 +- .../ql/test/library-tests/dataflow/basic/localFlowStepTest.ql | 2 +- .../ql/test/library-tests/dataflow/basic/maximalFlowTest.ql | 2 +- .../library-tests/dataflow/coverage/NormalDataflowTest.ql | 2 +- .../library-tests/dataflow/coverage/argumentRoutingTest.ql | 2 +- .../library-tests/dataflow/exceptions/NormalDataflowTest.ql | 2 +- .../library-tests/dataflow/fieldflow/NormalDataflowTest.ql | 2 +- .../test/library-tests/dataflow/fieldflow/UnresolvedCalls.ql | 2 +- .../test/library-tests/dataflow/match/NormalDataflowTest.ql | 2 +- .../dataflow/model-summaries/NormalDataflowTest.ql | 2 +- .../library-tests/dataflow/module-initialization/localFlow.ql | 2 +- python/ql/test/library-tests/dataflow/path-graph/PathNodes.ql | 2 +- python/ql/test/library-tests/dataflow/regression/dataflow.ql | 2 +- .../dataflow/summaries/NormalTaintTrackingTest.ql | 2 +- python/ql/test/library-tests/dataflow/summaries/summaries.ql | 2 +- .../tainttracking/generator-flow/NormalDataflowTest.ql | 2 +- .../library-tests/dataflow/variable-capture/CaptureTest.ql | 2 +- .../library-tests/frameworks/django-orm/NormalDataflowTest.ql | 2 +- .../Security/CWE-022-PathInjection/DataflowQueryTest.ql | 2 +- .../Security/CWE-078-CommandInjection/DataflowQueryTest.ql | 2 +- .../DataflowQueryTest.ql | 2 +- .../Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql | 2 +- 35 files changed, 28 insertions(+), 28 deletions(-) rename python/ql/test/{library-tests/dataflow/TestUtil => TestUtilities/dataflow}/DataflowQueryTest.qll (100%) rename python/ql/test/{library-tests/dataflow/TestUtil => TestUtilities/dataflow}/FlowTest.qll (100%) rename python/ql/test/{library-tests/dataflow/TestUtil => TestUtilities/dataflow}/LocalFlowStepTest.qll (100%) rename python/ql/test/{library-tests/dataflow/TestUtil => TestUtilities/dataflow}/MaximalFlowTest.qll (100%) rename python/ql/test/{library-tests/dataflow/TestUtil => TestUtilities/dataflow}/NormalDataflowTest.qll (93%) rename python/ql/test/{library-tests/dataflow/TestUtil => TestUtilities/dataflow}/NormalTaintTrackingTest.qll (92%) rename python/ql/test/{library-tests/dataflow/TestUtil => TestUtilities/dataflow}/RoutingTest.qll (100%) rename python/ql/test/{library-tests/dataflow/TestUtil => TestUtilities/dataflow}/UnresolvedCalls.qll (100%) rename python/ql/test/{library-tests => TestUtilities}/dataflow/callGraphConfig.qll (100%) rename python/ql/test/{library-tests => TestUtilities}/dataflow/testConfig.qll (100%) rename python/ql/test/{library-tests => TestUtilities}/dataflow/testTaintConfig.qll (100%) diff --git a/python/ql/test/library-tests/dataflow/TestUtil/DataflowQueryTest.qll b/python/ql/test/TestUtilities/dataflow/DataflowQueryTest.qll similarity index 100% rename from python/ql/test/library-tests/dataflow/TestUtil/DataflowQueryTest.qll rename to python/ql/test/TestUtilities/dataflow/DataflowQueryTest.qll diff --git a/python/ql/test/library-tests/dataflow/TestUtil/FlowTest.qll b/python/ql/test/TestUtilities/dataflow/FlowTest.qll similarity index 100% rename from python/ql/test/library-tests/dataflow/TestUtil/FlowTest.qll rename to python/ql/test/TestUtilities/dataflow/FlowTest.qll diff --git a/python/ql/test/library-tests/dataflow/TestUtil/LocalFlowStepTest.qll b/python/ql/test/TestUtilities/dataflow/LocalFlowStepTest.qll similarity index 100% rename from python/ql/test/library-tests/dataflow/TestUtil/LocalFlowStepTest.qll rename to python/ql/test/TestUtilities/dataflow/LocalFlowStepTest.qll diff --git a/python/ql/test/library-tests/dataflow/TestUtil/MaximalFlowTest.qll b/python/ql/test/TestUtilities/dataflow/MaximalFlowTest.qll similarity index 100% rename from python/ql/test/library-tests/dataflow/TestUtil/MaximalFlowTest.qll rename to python/ql/test/TestUtilities/dataflow/MaximalFlowTest.qll diff --git a/python/ql/test/library-tests/dataflow/TestUtil/NormalDataflowTest.qll b/python/ql/test/TestUtilities/dataflow/NormalDataflowTest.qll similarity index 93% rename from python/ql/test/library-tests/dataflow/TestUtil/NormalDataflowTest.qll rename to python/ql/test/TestUtilities/dataflow/NormalDataflowTest.qll index 51516faac8a..b89738b100e 100644 --- a/python/ql/test/library-tests/dataflow/TestUtil/NormalDataflowTest.qll +++ b/python/ql/test/TestUtilities/dataflow/NormalDataflowTest.qll @@ -1,6 +1,6 @@ import python -import experimental.dataflow.TestUtil.FlowTest -import experimental.dataflow.testConfig +import TestUtilities.dataflow.FlowTest +import TestUtilities.dataflow.testConfig private import semmle.python.dataflow.new.internal.PrintNode module DataFlowTest implements FlowTestSig { diff --git a/python/ql/test/library-tests/dataflow/TestUtil/NormalTaintTrackingTest.qll b/python/ql/test/TestUtilities/dataflow/NormalTaintTrackingTest.qll similarity index 92% rename from python/ql/test/library-tests/dataflow/TestUtil/NormalTaintTrackingTest.qll rename to python/ql/test/TestUtilities/dataflow/NormalTaintTrackingTest.qll index 23262dfb3e5..e63e962df4d 100644 --- a/python/ql/test/library-tests/dataflow/TestUtil/NormalTaintTrackingTest.qll +++ b/python/ql/test/TestUtilities/dataflow/NormalTaintTrackingTest.qll @@ -1,6 +1,6 @@ import python -import experimental.dataflow.TestUtil.FlowTest -import experimental.dataflow.testTaintConfig +import TestUtilities.dataflow.FlowTest +import TestUtilities.dataflow.testTaintConfig private import semmle.python.dataflow.new.internal.PrintNode module DataFlowTest implements FlowTestSig { diff --git a/python/ql/test/library-tests/dataflow/TestUtil/RoutingTest.qll b/python/ql/test/TestUtilities/dataflow/RoutingTest.qll similarity index 100% rename from python/ql/test/library-tests/dataflow/TestUtil/RoutingTest.qll rename to python/ql/test/TestUtilities/dataflow/RoutingTest.qll diff --git a/python/ql/test/library-tests/dataflow/TestUtil/UnresolvedCalls.qll b/python/ql/test/TestUtilities/dataflow/UnresolvedCalls.qll similarity index 100% rename from python/ql/test/library-tests/dataflow/TestUtil/UnresolvedCalls.qll rename to python/ql/test/TestUtilities/dataflow/UnresolvedCalls.qll diff --git a/python/ql/test/library-tests/dataflow/callGraphConfig.qll b/python/ql/test/TestUtilities/dataflow/callGraphConfig.qll similarity index 100% rename from python/ql/test/library-tests/dataflow/callGraphConfig.qll rename to python/ql/test/TestUtilities/dataflow/callGraphConfig.qll diff --git a/python/ql/test/library-tests/dataflow/testConfig.qll b/python/ql/test/TestUtilities/dataflow/testConfig.qll similarity index 100% rename from python/ql/test/library-tests/dataflow/testConfig.qll rename to python/ql/test/TestUtilities/dataflow/testConfig.qll diff --git a/python/ql/test/library-tests/dataflow/testTaintConfig.qll b/python/ql/test/TestUtilities/dataflow/testTaintConfig.qll similarity index 100% rename from python/ql/test/library-tests/dataflow/testTaintConfig.qll rename to python/ql/test/TestUtilities/dataflow/testTaintConfig.qll diff --git a/python/ql/test/experimental/meta/debug/dataflowTestPaths.ql b/python/ql/test/experimental/meta/debug/dataflowTestPaths.ql index 78d783033f5..4c0ab898686 100644 --- a/python/ql/test/experimental/meta/debug/dataflowTestPaths.ql +++ b/python/ql/test/experimental/meta/debug/dataflowTestPaths.ql @@ -9,7 +9,7 @@ // 3. if necessary, look at partial paths by (un)commenting appropriate lines import python import semmle.python.dataflow.new.DataFlow -import experimental.dataflow.testConfig +import TestUtilities.dataflow.testConfig module Config implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { TestConfig::isSource(source) } diff --git a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.ql b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.ql index ed7d650f536..9cbf6dd6ad8 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.ql +++ b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python -import experimental.dataflow.TestUtil.DataflowQueryTest +import TestUtilities.dataflow.DataflowQueryTest import experimental.Security.UnsafeUnpackQuery import FromTaintTrackingConfig diff --git a/python/ql/test/experimental/query-tests/Security/CWE-409/DataflowQueryTest.ql b/python/ql/test/experimental/query-tests/Security/CWE-409/DataflowQueryTest.ql index 24a2c302b98..c1724c29d2c 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-409/DataflowQueryTest.ql +++ b/python/ql/test/experimental/query-tests/Security/CWE-409/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python -import experimental.dataflow.TestUtil.DataflowQueryTest +import TestUtilities.dataflow.DataflowQueryTest import experimental.semmle.python.security.DecompressionBomb import FromTaintTrackingConfig diff --git a/python/ql/test/library-tests/dataflow/basic/localFlowStepTest.ql b/python/ql/test/library-tests/dataflow/basic/localFlowStepTest.ql index 6dca0190156..881592eeaeb 100644 --- a/python/ql/test/library-tests/dataflow/basic/localFlowStepTest.ql +++ b/python/ql/test/library-tests/dataflow/basic/localFlowStepTest.ql @@ -1 +1 @@ -import experimental.dataflow.TestUtil.LocalFlowStepTest +import TestUtilities.dataflow.LocalFlowStepTest diff --git a/python/ql/test/library-tests/dataflow/basic/maximalFlowTest.ql b/python/ql/test/library-tests/dataflow/basic/maximalFlowTest.ql index 618dae382f1..64867eb89da 100644 --- a/python/ql/test/library-tests/dataflow/basic/maximalFlowTest.ql +++ b/python/ql/test/library-tests/dataflow/basic/maximalFlowTest.ql @@ -1 +1 @@ -import experimental.dataflow.TestUtil.MaximalFlowTest +import TestUtilities.dataflow.MaximalFlowTest diff --git a/python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.ql index 3ee344d0b87..f7e55d12ded 100644 --- a/python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.ql +++ b/python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.ql @@ -1,2 +1,2 @@ import python -import experimental.dataflow.TestUtil.NormalDataflowTest +import TestUtilities.dataflow.NormalDataflowTest diff --git a/python/ql/test/library-tests/dataflow/coverage/argumentRoutingTest.ql b/python/ql/test/library-tests/dataflow/coverage/argumentRoutingTest.ql index 1a4e860f555..02b503824d4 100644 --- a/python/ql/test/library-tests/dataflow/coverage/argumentRoutingTest.ql +++ b/python/ql/test/library-tests/dataflow/coverage/argumentRoutingTest.ql @@ -1,7 +1,7 @@ import python import semmle.python.dataflow.new.DataFlow private import semmle.python.dataflow.new.internal.DataFlowPrivate as DataFlowPrivate -import experimental.dataflow.TestUtil.RoutingTest +import TestUtilities.dataflow.RoutingTest module Argument1RoutingTest implements RoutingTestSig { class Argument = Unit; diff --git a/python/ql/test/library-tests/dataflow/exceptions/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/exceptions/NormalDataflowTest.ql index 3ee344d0b87..f7e55d12ded 100644 --- a/python/ql/test/library-tests/dataflow/exceptions/NormalDataflowTest.ql +++ b/python/ql/test/library-tests/dataflow/exceptions/NormalDataflowTest.ql @@ -1,2 +1,2 @@ import python -import experimental.dataflow.TestUtil.NormalDataflowTest +import TestUtilities.dataflow.NormalDataflowTest diff --git a/python/ql/test/library-tests/dataflow/fieldflow/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/fieldflow/NormalDataflowTest.ql index 3ee344d0b87..f7e55d12ded 100644 --- a/python/ql/test/library-tests/dataflow/fieldflow/NormalDataflowTest.ql +++ b/python/ql/test/library-tests/dataflow/fieldflow/NormalDataflowTest.ql @@ -1,2 +1,2 @@ import python -import experimental.dataflow.TestUtil.NormalDataflowTest +import TestUtilities.dataflow.NormalDataflowTest diff --git a/python/ql/test/library-tests/dataflow/fieldflow/UnresolvedCalls.ql b/python/ql/test/library-tests/dataflow/fieldflow/UnresolvedCalls.ql index 3c7498bd651..299339dacf8 100644 --- a/python/ql/test/library-tests/dataflow/fieldflow/UnresolvedCalls.ql +++ b/python/ql/test/library-tests/dataflow/fieldflow/UnresolvedCalls.ql @@ -1,5 +1,5 @@ import python -import experimental.dataflow.TestUtil.UnresolvedCalls +import TestUtilities.dataflow.UnresolvedCalls private import semmle.python.dataflow.new.DataFlow module IgnoreDictMethod implements UnresolvedCallExpectationsSig { diff --git a/python/ql/test/library-tests/dataflow/match/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/match/NormalDataflowTest.ql index 3ee344d0b87..f7e55d12ded 100644 --- a/python/ql/test/library-tests/dataflow/match/NormalDataflowTest.ql +++ b/python/ql/test/library-tests/dataflow/match/NormalDataflowTest.ql @@ -1,2 +1,2 @@ import python -import experimental.dataflow.TestUtil.NormalDataflowTest +import TestUtilities.dataflow.NormalDataflowTest diff --git a/python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.ql index 3ee344d0b87..f7e55d12ded 100644 --- a/python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.ql +++ b/python/ql/test/library-tests/dataflow/model-summaries/NormalDataflowTest.ql @@ -1,2 +1,2 @@ import python -import experimental.dataflow.TestUtil.NormalDataflowTest +import TestUtilities.dataflow.NormalDataflowTest diff --git a/python/ql/test/library-tests/dataflow/module-initialization/localFlow.ql b/python/ql/test/library-tests/dataflow/module-initialization/localFlow.ql index 22a0f88d77e..36aa6e007a7 100644 --- a/python/ql/test/library-tests/dataflow/module-initialization/localFlow.ql +++ b/python/ql/test/library-tests/dataflow/module-initialization/localFlow.ql @@ -1,6 +1,6 @@ // This query should be more focused yet. import python -import experimental.dataflow.TestUtil.FlowTest +import TestUtilities.dataflow.FlowTest private import semmle.python.dataflow.new.internal.PrintNode private import semmle.python.dataflow.new.internal.DataFlowPrivate as DP diff --git a/python/ql/test/library-tests/dataflow/path-graph/PathNodes.ql b/python/ql/test/library-tests/dataflow/path-graph/PathNodes.ql index c403d588d49..8100e999491 100644 --- a/python/ql/test/library-tests/dataflow/path-graph/PathNodes.ql +++ b/python/ql/test/library-tests/dataflow/path-graph/PathNodes.ql @@ -5,7 +5,7 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking -import experimental.dataflow.testConfig +import TestUtilities.dataflow.testConfig import TestUtilities.InlineExpectationsTest module TestTaintFlow = TaintTracking::Global; diff --git a/python/ql/test/library-tests/dataflow/regression/dataflow.ql b/python/ql/test/library-tests/dataflow/regression/dataflow.ql index 39763fa4814..27645d084b8 100644 --- a/python/ql/test/library-tests/dataflow/regression/dataflow.ql +++ b/python/ql/test/library-tests/dataflow/regression/dataflow.ql @@ -6,7 +6,7 @@ */ import python -import experimental.dataflow.testConfig +import TestUtilities.dataflow.testConfig from DataFlow::Node source, DataFlow::Node sink where TestFlow::flow(source, sink) diff --git a/python/ql/test/library-tests/dataflow/summaries/NormalTaintTrackingTest.ql b/python/ql/test/library-tests/dataflow/summaries/NormalTaintTrackingTest.ql index afb44b6b2ed..59376d7a53c 100644 --- a/python/ql/test/library-tests/dataflow/summaries/NormalTaintTrackingTest.ql +++ b/python/ql/test/library-tests/dataflow/summaries/NormalTaintTrackingTest.ql @@ -1,3 +1,3 @@ import python private import TestSummaries -import experimental.dataflow.TestUtil.NormalTaintTrackingTest +import TestUtilities.dataflow.NormalTaintTrackingTest diff --git a/python/ql/test/library-tests/dataflow/summaries/summaries.ql b/python/ql/test/library-tests/dataflow/summaries/summaries.ql index e2a61cd6f46..4b5e79d2886 100644 --- a/python/ql/test/library-tests/dataflow/summaries/summaries.ql +++ b/python/ql/test/library-tests/dataflow/summaries/summaries.ql @@ -8,7 +8,7 @@ import TestFlow::PathGraph import semmle.python.dataflow.new.TaintTracking import semmle.python.dataflow.new.internal.FlowSummaryImpl import semmle.python.ApiGraphs -import experimental.dataflow.testTaintConfig +import TestUtilities.dataflow.testTaintConfig private import TestSummaries query predicate invalidSpecComponent(SummarizedCallable sc, string s, string c) { diff --git a/python/ql/test/library-tests/dataflow/tainttracking/generator-flow/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/tainttracking/generator-flow/NormalDataflowTest.ql index 3ee344d0b87..f7e55d12ded 100644 --- a/python/ql/test/library-tests/dataflow/tainttracking/generator-flow/NormalDataflowTest.ql +++ b/python/ql/test/library-tests/dataflow/tainttracking/generator-flow/NormalDataflowTest.ql @@ -1,2 +1,2 @@ import python -import experimental.dataflow.TestUtil.NormalDataflowTest +import TestUtilities.dataflow.NormalDataflowTest diff --git a/python/ql/test/library-tests/dataflow/variable-capture/CaptureTest.ql b/python/ql/test/library-tests/dataflow/variable-capture/CaptureTest.ql index a1c754e8ee5..f8110174151 100644 --- a/python/ql/test/library-tests/dataflow/variable-capture/CaptureTest.ql +++ b/python/ql/test/library-tests/dataflow/variable-capture/CaptureTest.ql @@ -1,7 +1,7 @@ import python import semmle.python.dataflow.new.DataFlow import TestUtilities.InlineExpectationsTest -import experimental.dataflow.testConfig +import TestUtilities.dataflow.testConfig module CaptureTest implements TestSig { string getARelevantTag() { result = "captured" } diff --git a/python/ql/test/library-tests/frameworks/django-orm/NormalDataflowTest.ql b/python/ql/test/library-tests/frameworks/django-orm/NormalDataflowTest.ql index 3ee344d0b87..f7e55d12ded 100644 --- a/python/ql/test/library-tests/frameworks/django-orm/NormalDataflowTest.ql +++ b/python/ql/test/library-tests/frameworks/django-orm/NormalDataflowTest.ql @@ -1,2 +1,2 @@ import python -import experimental.dataflow.TestUtil.NormalDataflowTest +import TestUtilities.dataflow.NormalDataflowTest diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql index 90761391ce7..a0cdc79b17d 100644 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python -import experimental.dataflow.TestUtil.DataflowQueryTest +import TestUtilities.dataflow.DataflowQueryTest import semmle.python.security.dataflow.PathInjectionQuery import FromTaintTrackingStateConfig diff --git a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.ql index df745b4ee8c..26350c3db65 100644 --- a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.ql +++ b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python -import experimental.dataflow.TestUtil.DataflowQueryTest +import TestUtilities.dataflow.DataflowQueryTest import semmle.python.security.dataflow.CommandInjectionQuery import FromTaintTrackingConfig diff --git a/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/DataflowQueryTest.ql index b2602b2b25c..521527e7e4f 100644 --- a/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/DataflowQueryTest.ql +++ b/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python -import experimental.dataflow.TestUtil.DataflowQueryTest +import TestUtilities.dataflow.DataflowQueryTest import semmle.python.security.dataflow.UnsafeShellCommandConstructionQuery import FromTaintTrackingConfig diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql index b665aefd6fb..5123e883d9c 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/DataflowQueryTest.ql @@ -1,4 +1,4 @@ import python -import experimental.dataflow.TestUtil.DataflowQueryTest +import TestUtilities.dataflow.DataflowQueryTest import semmle.python.security.dataflow.NoSqlInjectionQuery import FromTaintTrackingStateConfig From 1bc085c8f74e836241b88f5cdf8962414bb7ec1f Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Tue, 23 Apr 2024 09:42:35 +0200 Subject: [PATCH 4/4] Python: Fixup for `callGraphConfig` --- python/ql/test/library-tests/dataflow/basic/callGraph.ql | 2 +- python/ql/test/library-tests/dataflow/basic/callGraphSinks.ql | 2 +- python/ql/test/library-tests/dataflow/basic/callGraphSources.ql | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/python/ql/test/library-tests/dataflow/basic/callGraph.ql b/python/ql/test/library-tests/dataflow/basic/callGraph.ql index 98416af1d0f..f0e28c33dc6 100644 --- a/python/ql/test/library-tests/dataflow/basic/callGraph.ql +++ b/python/ql/test/library-tests/dataflow/basic/callGraph.ql @@ -1,4 +1,4 @@ -import experimental.dataflow.callGraphConfig +import TestUtilities.dataflow.callGraphConfig from DataFlow::Node source, DataFlow::Node sink where diff --git a/python/ql/test/library-tests/dataflow/basic/callGraphSinks.ql b/python/ql/test/library-tests/dataflow/basic/callGraphSinks.ql index 7cdf3cd94d1..472d6ccaa37 100644 --- a/python/ql/test/library-tests/dataflow/basic/callGraphSinks.ql +++ b/python/ql/test/library-tests/dataflow/basic/callGraphSinks.ql @@ -1,4 +1,4 @@ -import experimental.dataflow.callGraphConfig +import TestUtilities.dataflow.callGraphConfig from DataFlow::Node sink where diff --git a/python/ql/test/library-tests/dataflow/basic/callGraphSources.ql b/python/ql/test/library-tests/dataflow/basic/callGraphSources.ql index 8a0229c8f20..05b26caf3c0 100644 --- a/python/ql/test/library-tests/dataflow/basic/callGraphSources.ql +++ b/python/ql/test/library-tests/dataflow/basic/callGraphSources.ql @@ -1,4 +1,4 @@ -import experimental.dataflow.callGraphConfig +import TestUtilities.dataflow.callGraphConfig from DataFlow::Node source where