This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git
The following commit(s) were added to refs/heads/main by this push:
new a2375538c refactor(services/http): Migrate http task to new behavior
test planner (#3362)
a2375538c is described below
commit a2375538cb197e5c593dc767b35449700f2ecae5
Author: Nadeshiko Manju <[email protected]>
AuthorDate: Mon Oct 23 16:56:19 2023 +0800
refactor(services/http): Migrate http task to new behavior test planner
(#3362)
* refactor(services/http): Migrate http task to new behavior test planner
Signed-off-by: Manjusaka <[email protected]>
* remove file
Signed-off-by: Manjusaka <[email protected]>
* Update code
Signed-off-by: Manjusaka <[email protected]>
* Update licenserc.toml
---------
Signed-off-by: Manjusaka <[email protected]>
---
.../services/http/caddy/action.yml | 44 +-
.../services/http/nginx/action.yml | 44 +-
.github/workflows/service_test_http.yml | 104 --
fixtures/data/normal_dir/.gitkeep | 0
fixtures/data/normal_file.txt | 1041 ++++++++++++++++++++
.../data/special_dir !@#$%^&()_+-=;',/.gitkeep | 0
fixtures/data/special_file !@#$%^&()_+-=;',.txt | 1041 ++++++++++++++++++++
fixtures/http/Caddyfile | 11 +
.../http/docker-compose-caddy.yml | 36 +-
.../http/docker-compose-nginx.yml | 36 +-
fixtures/http/nginx.conf | 2 +-
licenserc.toml | 1 +
12 files changed, 2147 insertions(+), 213 deletions(-)
diff --git a/licenserc.toml b/.github/services/http/caddy/action.yml
similarity index 63%
copy from licenserc.toml
copy to .github/services/http/caddy/action.yml
index af50cef8f..f3c03a8d4 100644
--- a/licenserc.toml
+++ b/.github/services/http/caddy/action.yml
@@ -15,30 +15,20 @@
# specific language governing permissions and limitations
# under the License.
-headerPath = "Apache-2.0-ASF.txt"
-
-excludes = [
- # Examples are served as public domain content.
- "examples",
-
- # Well known generated files
- "**/Cargo.lock",
- "**/yarn.lock",
-
- # Python binding related files
- "**/venv/**",
-
- # Website generated files
- "website/build",
- "website/.docusaurus",
-
- # Documents
- "**/*.md",
- "**/*.mdx",
-
- # Test files
- "**/tests/data/**",
-
- # Third-party source files
- "scripts/merge_local_staging.sh",
-]
+name: caddy
+description: 'Behavior test for http service in caddy'
+
+runs:
+ using: "composite"
+ steps:
+ - name: Setup etcd cluster
+ shell: bash
+ working-directory: fixtures/http
+ run: docker-compose -f docker-compose-caddy.yml up -d
+ - name: Setup
+ shell: bash
+ run: |
+ cat << EOF >> $GITHUB_ENV
+ OPENDAL_HTTP_ENDPOINT=http://127.0.0.1:8080
+ OPENDAL_DISABLE_RANDOM_ROOT=true
+ EOF
\ No newline at end of file
diff --git a/licenserc.toml b/.github/services/http/nginx/action.yml
similarity index 63%
copy from licenserc.toml
copy to .github/services/http/nginx/action.yml
index af50cef8f..9a735bafc 100644
--- a/licenserc.toml
+++ b/.github/services/http/nginx/action.yml
@@ -15,30 +15,20 @@
# specific language governing permissions and limitations
# under the License.
-headerPath = "Apache-2.0-ASF.txt"
-
-excludes = [
- # Examples are served as public domain content.
- "examples",
-
- # Well known generated files
- "**/Cargo.lock",
- "**/yarn.lock",
-
- # Python binding related files
- "**/venv/**",
-
- # Website generated files
- "website/build",
- "website/.docusaurus",
-
- # Documents
- "**/*.md",
- "**/*.mdx",
-
- # Test files
- "**/tests/data/**",
-
- # Third-party source files
- "scripts/merge_local_staging.sh",
-]
+name: nginx
+description: 'Behavior test for http service in nginx'
+
+runs:
+ using: "composite"
+ steps:
+ - name: Setup etcd cluster
+ shell: bash
+ working-directory: fixtures/http
+ run: docker-compose -f docker-compose-nginx.yml up -d
+ - name: Setup
+ shell: bash
+ run: |
+ cat << EOF >> $GITHUB_ENV
+ OPENDAL_HTTP_ENDPOINT=http://127.0.0.1:8080
+ OPENDAL_DISABLE_RANDOM_ROOT=true
+ EOF
\ No newline at end of file
diff --git a/.github/workflows/service_test_http.yml
b/.github/workflows/service_test_http.yml
deleted file mode 100644
index e8e4607c7..000000000
--- a/.github/workflows/service_test_http.yml
+++ /dev/null
@@ -1,104 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-name: Service Test HTTP
-
-on:
- push:
- branches:
- - main
- pull_request:
- branches:
- - main
- paths:
- - "core/src/**"
- - "core/tests/**"
- - "!core/src/docs/**"
- - "!core/src/services/**"
- - "core/src/services/http/**"
- - ".github/workflows/service_test_http.yml"
- - "fixtures/http/**"
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
- cancel-in-progress: true
-
-jobs:
- nginx:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: Start nginx
- shell: bash
- working-directory: core
- run: |
- mkdir /tmp/static
- cp -r tests/data/* /tmp/static
- cd ..
- nginx -c `pwd`/fixtures/http/nginx.conf
-
- - name: Setup Rust toolchain
- uses: ./.github/actions/setup
- with:
- need-nextest: true
-
- - name: Test
- shell: bash
- working-directory: core
- run: cargo nextest run behavior
- env:
- OPENDAL_TEST: http
- OPENDAL_HTTP_ENDPOINT: http://127.0.0.1:8080
- OPENDAL_DISABLE_RANDOM_ROOT: true
-
- caddy:
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os:
- - ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- # caddy 2.5.2 can't pass our test cases for
https://github.com/caddyserver/caddy/issues/4923
- # Use the latest beta version instead
- - name: Start caddy
- shell: bash
- working-directory: core
- run: |
- VERSION="2.6.0-beta.3"
-
- curl -sSL
https://github.com/caddyserver/caddy/releases/download/v${VERSION}/caddy_${VERSION}_linux_amd64.tar.gz
-o caddy_linux_amd64.tar.gz
- tar -xvf caddy_linux_amd64.tar.gz
-
- mkdir /tmp/static
- cp -r tests/data/* /tmp/static
- ./caddy file-server --root /tmp/static --listen 127.0.0.1:8080
--access-log &
-
- - name: Setup Rust toolchain
- uses: ./.github/actions/setup
- with:
- need-nextest: true
- - name: Test
- shell: bash
- working-directory: core
- run: cargo nextest run behavior
- env:
- OPENDAL_TEST: http
- OPENDAL_HTTP_ENDPOINT: http://127.0.0.1:8080
- OPENDAL_DISABLE_RANDOM_ROOT: true
diff --git a/fixtures/data/normal_dir/.gitkeep
b/fixtures/data/normal_dir/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/fixtures/data/normal_file.txt b/fixtures/data/normal_file.txt
new file mode 100644
index 000000000..9f37f432f
--- /dev/null
+++ b/fixtures/data/normal_file.txt
@@ -0,0 +1,1041 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
diff --git a/fixtures/data/special_dir !@#$%^&()_+-=;',/.gitkeep
b/fixtures/data/special_dir !@#$%^&()_+-=;',/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/fixtures/data/special_file !@#$%^&()_+-=;',.txt
b/fixtures/data/special_file !@#$%^&()_+-=;',.txt
new file mode 100644
index 000000000..9f37f432f
--- /dev/null
+++ b/fixtures/data/special_file !@#$%^&()_+-=;',.txt
@@ -0,0 +1,1041 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
diff --git a/fixtures/http/Caddyfile b/fixtures/http/Caddyfile
new file mode 100644
index 000000000..2c5729aaf
--- /dev/null
+++ b/fixtures/http/Caddyfile
@@ -0,0 +1,11 @@
+{
+ http_port 8080
+}
+
+:8080 {
+ root * /tmp/static
+ file_server
+ log {
+ output stdout
+ }
+}
\ No newline at end of file
diff --git a/licenserc.toml b/fixtures/http/docker-compose-caddy.yml
similarity index 63%
copy from licenserc.toml
copy to fixtures/http/docker-compose-caddy.yml
index af50cef8f..b149d0c2f 100644
--- a/licenserc.toml
+++ b/fixtures/http/docker-compose-caddy.yml
@@ -15,30 +15,12 @@
# specific language governing permissions and limitations
# under the License.
-headerPath = "Apache-2.0-ASF.txt"
-
-excludes = [
- # Examples are served as public domain content.
- "examples",
-
- # Well known generated files
- "**/Cargo.lock",
- "**/yarn.lock",
-
- # Python binding related files
- "**/venv/**",
-
- # Website generated files
- "website/build",
- "website/.docusaurus",
-
- # Documents
- "**/*.md",
- "**/*.mdx",
-
- # Test files
- "**/tests/data/**",
-
- # Third-party source files
- "scripts/merge_local_staging.sh",
-]
+version: '3.8'
+services:
+ caddy:
+ image: caddy:latest
+ ports:
+ - 8080:8080
+ volumes:
+ - ../data:/tmp/static
+ - ./Caddyfile:/etc/caddy/Caddyfile
\ No newline at end of file
diff --git a/licenserc.toml b/fixtures/http/docker-compose-nginx.yml
similarity index 63%
copy from licenserc.toml
copy to fixtures/http/docker-compose-nginx.yml
index af50cef8f..73343e23a 100644
--- a/licenserc.toml
+++ b/fixtures/http/docker-compose-nginx.yml
@@ -15,30 +15,12 @@
# specific language governing permissions and limitations
# under the License.
-headerPath = "Apache-2.0-ASF.txt"
-
-excludes = [
- # Examples are served as public domain content.
- "examples",
-
- # Well known generated files
- "**/Cargo.lock",
- "**/yarn.lock",
-
- # Python binding related files
- "**/venv/**",
-
- # Website generated files
- "website/build",
- "website/.docusaurus",
-
- # Documents
- "**/*.md",
- "**/*.mdx",
-
- # Test files
- "**/tests/data/**",
-
- # Third-party source files
- "scripts/merge_local_staging.sh",
-]
+version: '3.8'
+services:
+ nginx:
+ image: nginx:latest
+ ports:
+ - 8080:8080
+ volumes:
+ - ./nginx.conf:/etc/nginx/nginx.conf
+ - ../data:/tmp/static
\ No newline at end of file
diff --git a/fixtures/http/nginx.conf b/fixtures/http/nginx.conf
index 4d36830b2..c3105bf88 100644
--- a/fixtures/http/nginx.conf
+++ b/fixtures/http/nginx.conf
@@ -7,7 +7,7 @@ events {
http {
server {
- listen 127.0.0.1:8080;
+ listen 0.0.0.0:8080;
server_name localhost;
access_log /tmp/access.log;
root /tmp/static;
diff --git a/licenserc.toml b/licenserc.toml
index af50cef8f..53882a6b2 100644
--- a/licenserc.toml
+++ b/licenserc.toml
@@ -38,6 +38,7 @@ excludes = [
# Test files
"**/tests/data/**",
+ "**/fixtures/data/**",
# Third-party source files
"scripts/merge_local_staging.sh",