Skip to content

Commit

Permalink
refactor(services/libsql): Migrate libsql task to new behavior test p…
Browse files Browse the repository at this point in the history
…lanner

Signed-off-by: Manjusaka <[email protected]>
  • Loading branch information
Zheaoli committed Oct 26, 2023
1 parent a4b260a commit c99bb65
Show file tree
Hide file tree
Showing 7 changed files with 123 additions and 134 deletions.
2 changes: 1 addition & 1 deletion .github/actions/behavior_test_binding_java/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ runs:
- name: Run Test Binding Java
shell: bash
working-directory: bindings/java
run: ./mvnw test -Dtest="behavior.*Test" -Dcargo-build.features=${{ inputs.feature }}
run: ./mvnw test -Dtest="behavior.*Test" -Dcargo-build.features=${{ inputs.feature }},test-retry
env:
OPENDAL_TEST: ${{ inputs.service }}
EOF
Expand Down
1 change: 0 additions & 1 deletion .github/scripts/behavior_test/plan.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,6 @@ def calculate_hint(changed_files):
hint.core = True
hint.binding_java = True
hint.services.add(match.group(1))

return hint


Expand Down
57 changes: 57 additions & 0 deletions .github/services/libsql/libsql-auth/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# 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: libsql-auth
description: 'Behavior test for libsql auth'

runs:
using: "composite"
steps:
- name: Setup libsql
shell: bash
working-directory: fixtures/libsql
run: docker-compose -f docker-compose-auth.yml up -d
- name: Create table
shell: bash
working-directory: core
run: |
curl --location '127.0.0.1:8080/v2/pipeline' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjc5ODg0ODM4Mjd9.MatB2aLnPFusagqH2RMoVExP37o2GFLmaJbmd52OdLtAehRNeqeJZPrefP1t2GBFidApUTLlaBRL6poKq_s3CQ' \
--data '{
"baton": null,
"requests": [
{
"type": "execute",
"stmt": {
"sql": "CREATE TABLE IF NOT EXISTS `data` (`key` TEXT PRIMARY KEY NOT NULL CHECK(length(key) <= 255),`data` BLOB);",
"args": [],
"want_rows": true
}
}
]
}'
- name: Setup
shell: bash
run: |
cat << EOF >> $GITHUB_ENV
OPENDAL_LIBSQL_CONNECTION_STRING=http://127.0.0.1:8080
OPENDAL_LIBSQL_AUTH_TOKEN=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjc5ODg0ODM4Mjd9.MatB2aLnPFusagqH2RMoVExP37o2GFLmaJbmd52OdLtAehRNeqeJZPrefP1t2GBFidApUTLlaBRL6poKq_s3CQ
OPENDAL_LIBSQL_TABLE=data
OPENDAL_LIBSQL_KEY_FIELD=key
OPENDAL_LIBSQL_VALUE_FIELD=data
EOF
55 changes: 55 additions & 0 deletions .github/services/libsql/libsql/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# 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: libsql
description: 'Behavior test for libsql'

runs:
using: "composite"
steps:
- name: Setup libsql
shell: bash
working-directory: fixtures/libsql
run: docker-compose -f docker-compose.yml up -d
- name: Create table
shell: bash
working-directory: core
run: |
curl --location '127.0.0.1:8080/v2/pipeline' \
--header 'Content-Type: application/json' \
--data '{
"baton": null,
"requests": [
{
"type": "execute",
"stmt": {
"sql": "CREATE TABLE IF NOT EXISTS `data` (`key` TEXT PRIMARY KEY NOT NULL CHECK(length(key) <= 255),`data` BLOB);",
"args": [],
"want_rows": true
}
}
]
}'
- name: Setup
shell: bash
run: |
cat << EOF >> $GITHUB_ENV
OPENDAL_LIBSQL_CONNECTION_STRING=http://127.0.0.1:8080
OPENDAL_LIBSQL_TABLE=data
OPENDAL_LIBSQL_KEY_FIELD=key
OPENDAL_LIBSQL_VALUE_FIELD=data
EOF
132 changes: 0 additions & 132 deletions .github/workflows/service_test_libsql.yml

This file was deleted.

3 changes: 3 additions & 0 deletions bindings/java/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ services-all = [
"services-wasabi",
"services-mongodb",
"services-sqlite",
"services-libsql",
]

# Default services provided by opendal.
Expand Down Expand Up @@ -129,6 +130,8 @@ services-wasabi = ["opendal/services-wasabi"]
services-mysql = ["opendal/services-mysql"]
services-mongodb = ["opendal/services-mongodb"]
services-sqlite = ["opendal/services-sqlite"]
services-libsql = ["opendal/services-libsql"]
test-retry = []

[dependencies]
anyhow = "1.0.71"
Expand Down
7 changes: 7 additions & 0 deletions bindings/java/src/operator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,18 @@ pub extern "system" fn Java_org_apache_opendal_Operator_constructor(
fn intern_constructor(env: &mut JNIEnv, scheme: JString, map: JObject) -> Result<jlong> {
let scheme = Scheme::from_str(jstring_to_string(env, &scheme)?.as_str())?;
let map = jmap_to_hashmap(env, &map)?;

let mut op = Operator::via_map(scheme, map)?;
if !op.info().full_capability().blocking {
let _guard = unsafe { get_global_runtime() }.enter();
op = op.layer(BlockingLayer::create()?);
}
#[cfg(feature = "test-retry")]
let op = {
use opendal::layers::RetryLayer;
op.layer(RetryLayer::new().with_max_times(4))
};

Ok(Box::into_raw(Box::new(op)) as jlong)
}

Expand Down

0 comments on commit c99bb65

Please sign in to comment.