Skip to content

Commit 95a05cc

Browse files
authored
CI: build bindings, add binding tests (#114)
* CI: build bindings, add binding tests * Cargo fmt * Add assertion in python binding test
1 parent 857db3c commit 95a05cc

File tree

6 files changed

+56
-2
lines changed

6 files changed

+56
-2
lines changed

.github/workflows/main.yml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,27 @@ jobs:
3838
cd lib
3939
cargo clippy -- -D warnings
4040
cd ../cli
41-
cargo clippy -- -D warnings
41+
cargo clippy -- -D warnings
42+
43+
build-bindings:
44+
name: Test ls-sdk-bindings
45+
runs-on: ubuntu-latest
46+
steps:
47+
- name: Checkout repo
48+
uses: actions/checkout@v4
49+
50+
- name: Build ls-sdk-bindings
51+
working-directory: lib/ls-sdk-bindings
52+
run: cargo build
53+
54+
- name: Setup python
55+
uses: actions/setup-python@v4
56+
with:
57+
python-version: '3.11'
58+
59+
- name: Run ls-sdk-bindings tests
60+
run: |
61+
curl -o jna-5.12.1.jar https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.12.1/jna-5.12.1.jar
62+
export CLASSPATH=$(pwd)/jna-5.12.1.jar;
63+
cd lib/ls-sdk-bindings
64+
cargo test

lib/ls-sdk-bindings/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ crate-type = ["staticlib", "cdylib", "lib"]
1515
[dependencies]
1616
anyhow = { workspace = true }
1717
ls-sdk = { path = "../ls-sdk-core" }
18-
uniffi = { workspace = true, features = [ "cli" ] }
18+
uniffi = { workspace = true, features = [ "bindgen-tests", "cli" ] }
1919
thiserror = { workspace = true }
2020

2121
[build-dependencies]
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
try {
2+
var mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
3+
var sdk = ls_sdk.init(mnemonic, null, ls_sdk.Network.LIQUID_TESTNET)
4+
var nodeInfo = sdk.getInfo(false)
5+
println("$nodeInfo")
6+
assert(nodeInfo.pubkey.equals("03d902f35f560e0470c63313c7369168d9d7df2d49bf295fd9fb7cb109ccee0494"))
7+
} catch (ex: Exception) {
8+
throw RuntimeException(ex.toString())
9+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import ls_sdk
2+
3+
def test():
4+
mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
5+
sdk = ls_sdk.init(mnemonic, None, ls_sdk.Network.LIQUID_TESTNET)
6+
node_info = sdk.get_info(False)
7+
print(node_info)
8+
assert node_info.pubkey == "03d902f35f560e0470c63313c7369168d9d7df2d49bf295fd9fb7cb109ccee0494"
9+
10+
test()
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import ls_sdk
2+
3+
let mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
4+
let sdk = try ls_sdk.`init`(mnemonic: mnemonic, dataDir: nil, network: .liquidTestnet);
5+
let nodeInfo = try sdk.getInfo(withScan: false);
6+
print(nodeInfo);
7+
assert(nodeInfo.pubkey == "03d902f35f560e0470c63313c7369168d9d7df2d49bf295fd9fb7cb109ccee0494", "nodeInfo.pubkey");
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
uniffi::build_foreign_language_testcases!(
2+
"tests/bindings/test_ls_sdk.swift",
3+
"tests/bindings/test_ls_sdk.kts",
4+
"tests/bindings/test_ls_sdk.py"
5+
);

0 commit comments

Comments
 (0)