ziti-sdk-c-nodejs
Version:
Node.js wrapper for OpenZiti C SDK
96 lines (84 loc) โข 3.39 kB
JavaScript
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
console.log('๐ง Testing Ziti SDK Node.js Wrapper - Cross Platform Support\n');
// Check current platform
const platform = process.platform;
console.log(`๐ Current platform: ${platform}`);
// Test build on current platform
console.log('\n๐จ Testing build...');
try {
execSync('npm run build', { stdio: 'inherit' });
console.log('โ
Build successful!');
} catch (error) {
console.log('โ Build failed!');
process.exit(1);
}
// Test basic functionality
console.log('\n๐งช Testing basic functionality...');
try {
execSync('npm test', { stdio: 'inherit' });
console.log('โ
Tests passed!');
} catch (error) {
console.log('โ Tests failed!');
process.exit(1);
}
// Platform-specific checks
console.log('\n๐ Platform-specific checks...');
if (platform === 'win32') {
console.log('Windows-specific checks:');
const zitiDll = path.join(__dirname, '..', 'ziti.dll');
if (fs.existsSync(zitiDll)) {
console.log('โ
ziti.dll found');
} else {
console.log('โ ๏ธ ziti.dll not found in current directory');
}
const zitiSdkDir = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Windows-AMD64');
if (fs.existsSync(zitiSdkDir)) {
console.log('โ
Windows SDK directory found');
} else {
console.log('โ ๏ธ Windows SDK directory not found');
}
} else if (platform === 'linux') {
console.log('Linux-specific checks:');
const libZitiSo = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Linux-x86_64', 'lib', 'libziti.so');
if (fs.existsSync(libZitiSo)) {
console.log('โ
libziti.so found');
} else {
console.log('โ ๏ธ libziti.so not found');
}
const zitiSdkDir = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Linux-x86_64');
if (fs.existsSync(zitiSdkDir)) {
console.log('โ
Linux SDK directory found');
} else {
console.log('โ ๏ธ Linux SDK directory not found');
}
} else if (platform === 'darwin') {
console.log('macOS-specific checks:');
const libZitiDylib = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Darwin-arm64', 'lib', 'libziti.dylib');
if (fs.existsSync(libZitiDylib)) {
console.log('โ
libziti.dylib found');
} else {
console.log('โ ๏ธ libziti.dylib not found');
}
const zitiSdkDir = path.join(__dirname, '..', 'ziti-sdk-1.7.8-Darwin-arm64');
if (fs.existsSync(zitiSdkDir)) {
console.log('โ
macOS SDK directory found');
} else {
console.log('โ ๏ธ macOS SDK directory not found');
}
}
// Check for .node file
const nodeFile = path.join(__dirname, '..', 'build', 'Release', 'ziti_sdk_c.node');
if (fs.existsSync(nodeFile)) {
console.log('โ
Native addon (.node file) created successfully');
} else {
console.log('โ Native addon (.node file) not found');
}
console.log('\n๐ Cross-platform support check completed!');
console.log('\n๐ Notes:');
console.log('- Windows: Uses ziti.dll with dynamic loading');
console.log('- Linux: Would use libziti.so with dlopen()');
console.log('- macOS: Would use libziti.dylib with dlopen()');
console.log('- All platforms use the same JavaScript API');