Skip to content

snowflakedb/libsnowflakeclient

Repository files navigation

Snowflake Connector for C/C++

image

image

image

Build and Tests

Build

Ensure you have cmake 2.8 or later version.

Linux and OSX

./scripts/build_libsnowflakeclient.sh

Windows

Set environment variables: PLATFORM: [x64, x86], BUILD_TYPE: [Debug, Release], VS_VERSION: [VS14, VS15, VS16, VS17] and run the script.

set platform=x64
set build_type=Debug
set vs_version=VS14
ci\build.bat

Prepare for Test

Set the Snowflake connection info in parameters.json and place it in $HOME:

{
    "testconnection": {
        "SNOWFLAKE_TEST_USER":      "<your_user>",
        "SNOWFLAKE_TEST_PASSWORD":  "<your_password>",
        "SNOWFLAKE_TEST_ACCOUNT":   "<your_account>",
        "SNOWFLAKE_TEST_WAREHOUSE": "<your_warehouse>",
        "SNOWFLAKE_TEST_DATABASE":  "<your_database>",
        "SNOWFLAKE_TEST_SCHEMA":    "<your_schema>",
        "SNOWFLAKE_TEST_ROLE":      "<your_role>"
    }
}

Proxy

Libsnowflakeclient supports HTTP and HTTPS proxy connections using environment variables. To use a proxy server configure the following environment variables:

  • http_proxy
  • https_proxy
  • no_proxy
export http_proxy="[protocol://][user:password@]machine[:port]"
export https_proxy="[protocol://][user:password@]machine[:port]"

More info can be found on the libcurl tutorial page.

Run Tests

Run the tests. The test parameter environment variables will be set automatically.

Linux and OSX

./scripts/run_tests.sh

Windows

Set environment variables: PLATFORM: [x64, x86], BUILD_TYPE: [Debug, Release], VS_VERSION: [VS14, VS15, VS16, VS17] and run the script.

set platform=x64
set build_type=Debug
set vs_version=VS14
ci\test.bat

Code Coverage (Linux)

Ensure you have lcov 1.11 or later version and have account on AWS and AZURE for test.

  • Modify script/gen_coverage_report.sh to add test account information there, not only the AWS information at the top, but also AZURE information at the bottom.

- run gen_coverage_report.sh to generate code coverage report .. code-block:: bash

./scripts/gen_coverage_report.sh

Profiling (Linux and OSX)

If you want to use gprof, add -p option to the build script, run a test program followed by gprof, for example:

./scripts/build_libsnowflakeclient.sh -p
./cmake-build/examples/ex_connect
gprof ./cmake-build/examples/ex_connect gmon.out

Check memory leak by Valgrind (Linux)

Use valgrind to check memory leak.

./scripts/build_libsnowflakeclient.sh
valgrind --leak-check=full ./cmake-build/examples/ex_connect

and verify no error in the output:

ERROR SUMMARY: 0 errors from 0 contexts ...