blade-sauce_labs_plugin 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +1 -0
- data/Rakefile +12 -0
- data/bin/console +14 -0
- data/bin/rake +16 -0
- data/bin/setup +7 -0
- data/blade-sauce_labs_plugin.gemspec +28 -0
- data/lib/blade/sauce_labs_plugin.rb +62 -0
- data/lib/blade/sauce_labs_plugin/cli.rb +31 -0
- data/lib/blade/sauce_labs_plugin/client.rb +115 -0
- data/lib/blade/sauce_labs_plugin/tunnel.rb +48 -0
- data/lib/blade/sauce_labs_plugin/version.rb +5 -0
- data/support/sc-linux/bin/sc +0 -0
- data/support/sc-linux/include/sauceconnect.h +154 -0
- data/support/sc-linux/lib/libsauceconnect.a +0 -0
- data/support/sc-linux/lib/libsauceconnect.la +41 -0
- data/support/sc-linux/license.html +116 -0
- data/support/sc-osx/bin/sc +0 -0
- data/support/sc-osx/bin/sc.dSYM/Contents/Info.plist +20 -0
- data/support/sc-osx/bin/sc.dSYM/Contents/Resources/DWARF/sc +0 -0
- data/support/sc-osx/include/sauceconnect.h +154 -0
- data/support/sc-osx/lib/libsauceconnect.a +0 -0
- data/support/sc-osx/lib/libsauceconnect.la +41 -0
- data/support/sc-osx/license.html +116 -0
- metadata +154 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b206ddc9702aa07cc6b03ea4556918b15f1de0a6
|
4
|
+
data.tar.gz: 8bced80631835f11970a9372fc44f3e004345049
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3d98f623b3450309161ff05051a6936e9e9c8c2a57ee2669f24d3fc10ec94642d87a1dd11439be33d0a558aa70f63c2e75e60291c8ad26ce71893d339db2bf82
|
7
|
+
data.tar.gz: ab463d62969ff338fe981d8924c8d2c41a3781a9b351a96239d4a15bb691ff7f9b48026d8e58bb351f5366e27c564eddbde8b5fa9029cf016535718b21469754
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2015 Javan Makhmali
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
[Blade](https://github.com/javan/blade) plugin for [Sauce Labs](https://saucelabs.com/)
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "blade/sauce_labs_plugin"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/rake
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This file was generated by Bundler.
|
4
|
+
#
|
5
|
+
# The application 'rake' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'pathname'
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
+
Pathname.new(__FILE__).realpath)
|
12
|
+
|
13
|
+
require 'rubygems'
|
14
|
+
require 'bundler/setup'
|
15
|
+
|
16
|
+
load Gem.bin_path('rake', 'rake')
|
data/bin/setup
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'blade/sauce_labs_plugin/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "blade-sauce_labs_plugin"
|
8
|
+
spec.version = Blade::SauceLabsPlugin::VERSION
|
9
|
+
spec.authors = ["Javan Makhmali"]
|
10
|
+
spec.email = ["javan@javan.us"]
|
11
|
+
|
12
|
+
spec.summary = %q{Blade Runner plugin for Sauce Labs (saucelabs.com)}
|
13
|
+
spec.homepage = "https://github.com/javan/blade-sauce_labs_plugin"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.bindir = "exe"
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency "webmock", "~> 1.21.0"
|
24
|
+
|
25
|
+
spec.add_dependency "blade"
|
26
|
+
spec.add_dependency "faraday"
|
27
|
+
spec.add_dependency "childprocess"
|
28
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require "blade"
|
2
|
+
require "blade/sauce_labs_plugin/version"
|
3
|
+
require "blade/sauce_labs_plugin/cli"
|
4
|
+
|
5
|
+
require "active_support/core_ext/string/inflections"
|
6
|
+
|
7
|
+
module Blade::SauceLabsPlugin
|
8
|
+
extend self
|
9
|
+
include Blade::Component
|
10
|
+
|
11
|
+
autoload :Client, "blade/sauce_labs_plugin/client"
|
12
|
+
autoload :Tunnel, "blade/sauce_labs_plugin/tunnel"
|
13
|
+
|
14
|
+
def start
|
15
|
+
if Blade.config.interface == :ci
|
16
|
+
Tunnel.start
|
17
|
+
Blade.config.expected_sessions = Client.platforms.size
|
18
|
+
Client.request(:post, "rest/v1/#{username}/js-tests", test_params)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def stop
|
23
|
+
Tunnel.stop
|
24
|
+
end
|
25
|
+
|
26
|
+
def config
|
27
|
+
Blade.plugins.sauce_labs.config
|
28
|
+
end
|
29
|
+
|
30
|
+
def username
|
31
|
+
config.username || ENV["SAUCE_USERNAME"]
|
32
|
+
end
|
33
|
+
|
34
|
+
def access_key
|
35
|
+
config.access_key || ENV["SAUCE_ACCESS_KEY"]
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
def test_params
|
40
|
+
{ url: Blade.url, platforms: Client.platforms, framework: Blade.config.framework }.merge(default_test_config).merge(test_config)
|
41
|
+
end
|
42
|
+
|
43
|
+
def default_test_config
|
44
|
+
{ build: rev, max_duration: 200 }
|
45
|
+
end
|
46
|
+
|
47
|
+
def rev
|
48
|
+
@rev ||= `git rev-parse HEAD`.chomp
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_config
|
52
|
+
if config.test_config
|
53
|
+
{}.tap do |result|
|
54
|
+
config.test_config.each do |key, value|
|
55
|
+
result[key.to_s.camelize(:lower)] = value
|
56
|
+
end
|
57
|
+
end
|
58
|
+
else
|
59
|
+
{}
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Blade::SauceLabsPlugin::CLI
|
2
|
+
class Sauce < Thor
|
3
|
+
desc "browsers", "Show available browsers"
|
4
|
+
def browsers
|
5
|
+
browsers = Blade::SauceLabsPlugin::Client.available_platforms_by_browser
|
6
|
+
|
7
|
+
puts
|
8
|
+
puts "Available browsers on Sauce Labs"
|
9
|
+
puts "--------------------------------"
|
10
|
+
puts
|
11
|
+
|
12
|
+
browsers.keys.sort_by(&:downcase).each do |name|
|
13
|
+
puts "#{name}:"
|
14
|
+
browsers[name].each do |os, details|
|
15
|
+
versions = details[:versions].map do |version|
|
16
|
+
if version.to_i.to_s == version
|
17
|
+
version.to_i
|
18
|
+
else
|
19
|
+
version
|
20
|
+
end
|
21
|
+
end
|
22
|
+
puts " #{os}: #{versions.join(', ')}"
|
23
|
+
end
|
24
|
+
|
25
|
+
puts
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
Blade::CLI.register Blade::SauceLabsPlugin::CLI::Sauce, "sauce", "sauce COMMAND", "Sauce Labs commands"
|
@@ -0,0 +1,115 @@
|
|
1
|
+
require "faraday"
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
module Blade::SauceLabsPlugin::Client
|
5
|
+
extend self
|
6
|
+
|
7
|
+
ALIASES = {
|
8
|
+
"ie" => "Internet Explorer",
|
9
|
+
"IE" => "Internet Explorer"
|
10
|
+
}
|
11
|
+
|
12
|
+
extend Forwardable
|
13
|
+
def_delegators Blade::SauceLabsPlugin, :config, :username, :access_key
|
14
|
+
|
15
|
+
def request(method, path, params = {})
|
16
|
+
connection.send(method) do |req|
|
17
|
+
req.url path
|
18
|
+
req.headers["Content-Type"] = "application/json"
|
19
|
+
req.body = params.to_json
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def platforms
|
24
|
+
[].tap do |platforms|
|
25
|
+
config.browsers.each do |name, config|
|
26
|
+
browser =
|
27
|
+
case config
|
28
|
+
when String, Numeric
|
29
|
+
{ version: config }
|
30
|
+
when Hash
|
31
|
+
config.symbolize_keys
|
32
|
+
else
|
33
|
+
{}
|
34
|
+
end.merge(name: name)
|
35
|
+
|
36
|
+
platforms.concat platforms_for_browser(browser)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def platforms_for_browser(browser)
|
42
|
+
long_name = find_browser_long_name(browser[:name])
|
43
|
+
platforms = available_platforms_by_browser[long_name]
|
44
|
+
platform_versions = platforms.flat_map { |os, details| details[:versions] }.uniq.sort_by(&:to_f).reverse
|
45
|
+
|
46
|
+
versions =
|
47
|
+
if browser[:version].is_a?(Numeric) && browser[:version] < 0
|
48
|
+
platform_versions.select { |v| v =~ /^\d/ }.first(browser[:version].abs.to_i)
|
49
|
+
elsif browser[:version].present?
|
50
|
+
Array(browser[:version]).map(&:to_s)
|
51
|
+
else
|
52
|
+
platform_versions.first(1)
|
53
|
+
end
|
54
|
+
|
55
|
+
if browser[:os]
|
56
|
+
Array(browser[:os]).flat_map do |browser_os|
|
57
|
+
versions.map do |version|
|
58
|
+
os = platforms.keys.detect { |os| os =~ Regexp.new(browser_os, Regexp::IGNORECASE) }
|
59
|
+
platforms[os][:api][version].first
|
60
|
+
end
|
61
|
+
end
|
62
|
+
else
|
63
|
+
versions.map do |version|
|
64
|
+
os = platforms.detect { |os, details| details[:api][version].any? }.first
|
65
|
+
platforms[os][:api][version].first
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def find_browser_long_name(name)
|
71
|
+
if match = ALIASES[name.to_s]
|
72
|
+
match
|
73
|
+
else
|
74
|
+
available_platforms_by_browser.keys.detect do |long_name|
|
75
|
+
long_name =~ Regexp.new(name, Regexp::IGNORECASE)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def available_platforms_by_browser
|
81
|
+
@available_platforms_by_browser ||= {}.tap do |by_browser|
|
82
|
+
available_platforms.group_by { |p| p[:api_name] }.each do |api_name, platforms|
|
83
|
+
long_name = platforms.first[:long_name]
|
84
|
+
by_browser[long_name] = {}
|
85
|
+
|
86
|
+
platforms.group_by { |p| p[:os].split(" ").first }.each do |os, platforms|
|
87
|
+
by_browser[long_name][os] = {}
|
88
|
+
by_browser[long_name][os][:versions] = []
|
89
|
+
by_browser[long_name][os][:api] = {}
|
90
|
+
|
91
|
+
versions = platforms.map { |p| p[:short_version] }.uniq.sort_by(&:to_f).reverse
|
92
|
+
|
93
|
+
versions.each do |version|
|
94
|
+
by_browser[long_name][os][:versions] << version
|
95
|
+
|
96
|
+
by_browser[long_name][os][:api][version] = platforms.map do |platform|
|
97
|
+
if platform[:short_version] == version
|
98
|
+
platform.values_at(:os, :api_name, :short_version)
|
99
|
+
end
|
100
|
+
end.compact
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
private
|
108
|
+
def connection
|
109
|
+
@connnection ||= Faraday.new("https://#{username}:#{access_key}@saucelabs.com/")
|
110
|
+
end
|
111
|
+
|
112
|
+
def available_platforms
|
113
|
+
@available_platforms ||= JSON.parse(connection.get("/rest/v1/info/platforms/webdriver").body).map(&:symbolize_keys)
|
114
|
+
end
|
115
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "childprocess"
|
2
|
+
|
3
|
+
module Blade::SauceLabsPlugin::Tunnel
|
4
|
+
extend self
|
5
|
+
|
6
|
+
extend Forwardable
|
7
|
+
def_delegators Blade::SauceLabsPlugin, :username, :access_key
|
8
|
+
|
9
|
+
def start
|
10
|
+
return if @process
|
11
|
+
cmd = Pathname.new(File.dirname(__FILE__)).join("../../../support/sc-#{os}/bin/sc").to_s
|
12
|
+
@process = ChildProcess.build(cmd, "--user", username, "--api-key", access_key)
|
13
|
+
reader, writer = IO.pipe
|
14
|
+
@process.io.stdout = @process.io.stderr = writer
|
15
|
+
@process.start
|
16
|
+
|
17
|
+
output = ""
|
18
|
+
while line = reader.gets
|
19
|
+
output << line
|
20
|
+
case line
|
21
|
+
when /Sauce Connect is up, you may start your tests/
|
22
|
+
break
|
23
|
+
when /Goodbye/
|
24
|
+
STDERR.puts output
|
25
|
+
raise "Sauce Connect tunnel connection error"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
ensure
|
30
|
+
writer.close if writer
|
31
|
+
reader.close if reader
|
32
|
+
end
|
33
|
+
|
34
|
+
def stop
|
35
|
+
return unless @process
|
36
|
+
@process.stop
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
def os
|
41
|
+
@os ||=
|
42
|
+
case RUBY_PLATFORM.downcase
|
43
|
+
when /linux/ then :linux
|
44
|
+
when /darwin/ then :osx
|
45
|
+
when /windows/ then :windows
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
Binary file
|
@@ -0,0 +1,154 @@
|
|
1
|
+
#ifndef _SAUCECONNECT_H
|
2
|
+
#define _SAUCECONNECT_H
|
3
|
+
|
4
|
+
#include <stddef.h>
|
5
|
+
|
6
|
+
/*
|
7
|
+
* The definition of this structure is hidden from the API to be able to
|
8
|
+
* provide ABI compatibility if our Sauce Connect implementation changes. Use
|
9
|
+
* sc_new() and sc_free() to create/free it.
|
10
|
+
*/
|
11
|
+
struct sc_ctx;
|
12
|
+
|
13
|
+
/*
|
14
|
+
* Create/free a new Sauce Connect context. This can be called multiple times
|
15
|
+
* to create independent instances, to e.g. use multiple accounts.
|
16
|
+
*/
|
17
|
+
struct sc_ctx *sc_new(void);
|
18
|
+
void sc_free(struct sc_ctx *ctx);
|
19
|
+
|
20
|
+
/*
|
21
|
+
* Setter/getter for configuration parameters. vlen is the size of value. Do
|
22
|
+
* this before calling sc_init().
|
23
|
+
*/
|
24
|
+
#define SC_PARAM_IS_SERVER 0x01 /* int */
|
25
|
+
#define SC_PARAM_KGP_HOST 0x02 /* char * */
|
26
|
+
#define SC_PARAM_KGP_PORT 0x03 /* int */
|
27
|
+
#define SC_PARAM_EXT_HOST 0x04 /* char * */
|
28
|
+
#define SC_PARAM_EXT_PORT 0x05 /* int */
|
29
|
+
#define SC_PARAM_CERTFILE 0x06 /* char * */
|
30
|
+
#define SC_PARAM_KEYFILE 0x07 /* char * */
|
31
|
+
#define SC_PARAM_LOCAL_PORT 0x08 /* int */
|
32
|
+
#define SC_PARAM_USER 0x09 /* char * */
|
33
|
+
#define SC_PARAM_API_KEY 0x0a /* char * */
|
34
|
+
#define SC_PARAM_PROXY 0x0b /* char * */
|
35
|
+
#define SC_PARAM_PROXY_USERPWD 0x0c /* char * */
|
36
|
+
#define SC_PARAM_RECONNECT 0x0d /* int */
|
37
|
+
#define SC_PARAM_DNS_SERVERS 0x0e /* char * */
|
38
|
+
int sc_get(struct sc_ctx *ctx, int param, void *value, size_t vlen);
|
39
|
+
int sc_set(struct sc_ctx *ctx, int param, void *value);
|
40
|
+
|
41
|
+
/*
|
42
|
+
* Once we have set up our ctx, do some initialization. This makes sure
|
43
|
+
* everything is ready to start a new connection. Do this only after
|
44
|
+
* parameters are set via sc_set().
|
45
|
+
*/
|
46
|
+
int sc_init(struct sc_ctx *ctx);
|
47
|
+
|
48
|
+
/*
|
49
|
+
* Run the main event loop: connect to the peer, and start forwarding. Only
|
50
|
+
* returns if sc_stop() is called from another thread, or a fatal error
|
51
|
+
* happens Sauce Connect can't recover from.
|
52
|
+
*/
|
53
|
+
int sc_run(struct sc_ctx *ctx);
|
54
|
+
|
55
|
+
/*
|
56
|
+
* Stop the Sauce Connect main event loop. This can be used from e.g. another
|
57
|
+
* thread to stop SC in a clean way.
|
58
|
+
*/
|
59
|
+
int sc_stop(struct sc_ctx *ctx);
|
60
|
+
|
61
|
+
/*
|
62
|
+
* Get the current status of Sauce Connect.
|
63
|
+
*/
|
64
|
+
#define SC_STATUS_RUNNING 0x01
|
65
|
+
#define SC_STATUS_EXITING 0x02
|
66
|
+
int sc_status(struct sc_ctx *ctx);
|
67
|
+
|
68
|
+
/*
|
69
|
+
* Get information on Sauce Connect internals.
|
70
|
+
*/
|
71
|
+
#define SC_INFO_KGP_IS_CONNECTED 0x01
|
72
|
+
#define SC_INFO_KGP_LAST_STATUS_CHANGE 0x02
|
73
|
+
int sc_get_info(struct sc_ctx *ctx, int what, int *info);
|
74
|
+
|
75
|
+
/*
|
76
|
+
* Set a log callback the library will call when logging messages.
|
77
|
+
*/
|
78
|
+
typedef void (*sc_log_cb)(int severity, const char *msg);
|
79
|
+
|
80
|
+
void sc_set_log_fn(sc_log_cb cb);
|
81
|
+
|
82
|
+
#define SC_EXITCODE_UNKNOWN 0
|
83
|
+
#define SC_EXITCODE_ALLOC_ERROR 1
|
84
|
+
#define SC_EXITCODE_LOCAL_LISTEN_ERROR 2
|
85
|
+
#define SC_EXITCODE_LOCAL_ACCEPT_ERROR 3
|
86
|
+
#define SC_EXITCODE_KGP_INVALID_PACKET 4
|
87
|
+
#define SC_EXITCODE_KGP_CONNECT_ERROR 5
|
88
|
+
#define SC_EXITCODE_KGP_CONNECTION_CLOSED 6
|
89
|
+
#define SC_EXITCODE_KGP_LISTEN_ERROR 7
|
90
|
+
#define SC_EXITCODE_CMD_STOP 8
|
91
|
+
#define SC_EXITCODE_CMD_SOCKET_ERROR 9
|
92
|
+
#define SC_EXITCODE_CMD_CONNECTION_CLOSED 10
|
93
|
+
#define SC_EXITCODE_DNS_RESET_ERROR 11
|
94
|
+
int sc_error(struct sc_ctx *ctx);
|
95
|
+
|
96
|
+
static inline char *sc_err2str(int exitcode)
|
97
|
+
{
|
98
|
+
switch (exitcode) {
|
99
|
+
case SC_EXITCODE_UNKNOWN:
|
100
|
+
return "Unknown error or no error occured";
|
101
|
+
break;
|
102
|
+
case SC_EXITCODE_ALLOC_ERROR:
|
103
|
+
return "Allocation failed - out of memory?";
|
104
|
+
break;
|
105
|
+
case SC_EXITCODE_LOCAL_LISTEN_ERROR:
|
106
|
+
return "Failed to start Selenium listener. "
|
107
|
+
"Please make sure there are no other applications using "
|
108
|
+
"the Selenium port, or specify an alternative port for "
|
109
|
+
"Sauce Connect via the --se-port option";
|
110
|
+
break;
|
111
|
+
case SC_EXITCODE_LOCAL_ACCEPT_ERROR:
|
112
|
+
return "Failed to accept Selenium connection";
|
113
|
+
break;
|
114
|
+
case SC_EXITCODE_KGP_INVALID_PACKET:
|
115
|
+
return "Invalid KGP packet received";
|
116
|
+
break;
|
117
|
+
case SC_EXITCODE_KGP_CONNECT_ERROR:
|
118
|
+
return "KGP connection error";
|
119
|
+
break;
|
120
|
+
case SC_EXITCODE_KGP_CONNECTION_CLOSED:
|
121
|
+
return "KGP connection closed from the other side";
|
122
|
+
break;
|
123
|
+
case SC_EXITCODE_KGP_LISTEN_ERROR:
|
124
|
+
return "Failed to start KGP listener";
|
125
|
+
break;
|
126
|
+
case SC_EXITCODE_CMD_STOP:
|
127
|
+
return "Terminated";
|
128
|
+
break;
|
129
|
+
case SC_EXITCODE_CMD_SOCKET_ERROR:
|
130
|
+
return "Internal error: command socket failure";
|
131
|
+
break;
|
132
|
+
case SC_EXITCODE_CMD_CONNECTION_CLOSED:
|
133
|
+
return "Internal error: command socket closed";
|
134
|
+
break;
|
135
|
+
case SC_EXITCODE_DNS_RESET_ERROR:
|
136
|
+
return "DNS reset failed";
|
137
|
+
break;
|
138
|
+
default:
|
139
|
+
return "Invalid exit code";
|
140
|
+
break;
|
141
|
+
}
|
142
|
+
}
|
143
|
+
|
144
|
+
/*
|
145
|
+
* Enable SSL verification for KGP. This is the default.
|
146
|
+
*/
|
147
|
+
void sc_ssl_enable_verification(void);
|
148
|
+
|
149
|
+
/*
|
150
|
+
* Disable SSL verification for KGP. This is the default.
|
151
|
+
*/
|
152
|
+
void sc_ssl_disable_verification(void);
|
153
|
+
|
154
|
+
#endif
|
Binary file
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# libsauceconnect.la - a libtool library file
|
2
|
+
# Generated by libtool (GNU libtool) 2.4.2
|
3
|
+
#
|
4
|
+
# Please DO NOT delete this file!
|
5
|
+
# It is necessary for linking the library.
|
6
|
+
|
7
|
+
# The name that we can dlopen(3).
|
8
|
+
dlname=''
|
9
|
+
|
10
|
+
# Names of this library.
|
11
|
+
library_names=''
|
12
|
+
|
13
|
+
# The name of the static archive.
|
14
|
+
old_library='libsauceconnect.a'
|
15
|
+
|
16
|
+
# Linker flags that can not go in dependency_libs.
|
17
|
+
inherited_linker_flags=' -pthread'
|
18
|
+
|
19
|
+
# Libraries that this one depends upon.
|
20
|
+
dependency_libs=' -L/build/build/Linux/openssl/lib -L/build/curl/ares /build/build/sc-build-1757/lib/libevent.la /build/build/sc-build-1757/lib/libevent_openssl.la /build/build/sc-build-1757/lib/libcares.la /build/build/sc-build-1757/lib/libcurl.la /build/build/sc-build-1757/lib/libcares.la -lz -lrt /build/build/sc-build-1757/lib/libunwind.la -lc -lgcc -lssl -lcrypto -ldl'
|
21
|
+
|
22
|
+
# Names of additional weak libraries provided by this library
|
23
|
+
weak_library_names=''
|
24
|
+
|
25
|
+
# Version information for libsauceconnect.
|
26
|
+
current=0
|
27
|
+
age=0
|
28
|
+
revision=0
|
29
|
+
|
30
|
+
# Is this an already installed library?
|
31
|
+
installed=yes
|
32
|
+
|
33
|
+
# Should we warn about portability when linking against -modules?
|
34
|
+
shouldnotlink=no
|
35
|
+
|
36
|
+
# Files to dlopen/dlpreopen
|
37
|
+
dlopen=''
|
38
|
+
dlpreopen=''
|
39
|
+
|
40
|
+
# Directory that this library needs to be installed in:
|
41
|
+
libdir='/build/build/sc-build-1757/lib'
|
@@ -0,0 +1,116 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/html4/loose.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<title>Sauce Connect License</title>
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<div style="margin-bottom: 40px">
|
10
|
+
<center><h3>
|
11
|
+
SAUCE LABS INC <br />
|
12
|
+
END USER LICENSE AGREEMENT (“EULA”) <br />
|
13
|
+
for: <br />
|
14
|
+
Public Release of Sauce Connect <br />
|
15
|
+
</h3></center>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<p><b>
|
19
|
+
READ THIS AGREEMENT CAREFULLY.
|
20
|
+
</b></p>
|
21
|
+
<p>
|
22
|
+
BY CLICKING ON THE “I AGREE” BUTTON OR INSTALLING OR USING ALL OR ANY PORTION OF THE SOFTWARE, YOU ARE ACCEPTING ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. YOU AGREE THAT THIS AGREEMENT IS ENFORCEABLE LIKE ANY WRITTEN AGREEMENT SIGNED BY YOU.
|
23
|
+
</p><p>
|
24
|
+
IF YOU DO NOT AGREE TO ALL OF THESE TERMS AND CONDITIONS, CLICK “I DON’T AGREE”. YOU WILL NOT BE GIVEN ACCESS TO THE SOFTWARE UNLESS YOU ACCEPT THE TERMS OF THIS AGREEMENT. IF YOU HAVE PAID A LICENSE FEE FOR USE OF THE SOFTWARE AND DO NOT AGREE TO THESE TERMS, YOU MAY RETURN OR CONFIRM DELETION OF ALL COPIES OF THE SOFTWARE FOR A FULL REFUND PROVIDED YOU (A) DO NOT USE THE SOFTWARE AND (B) RETURN THE SOFTWARE WITHIN THIRTY (30) DAYS OF YOUR INITIAL PURCHASE.
|
25
|
+
</p><p>
|
26
|
+
IF YOU WISH TO USE the Software AS AN EMPLOYEE, CONTRACTOR, OR AGENT OF A CORPORATION, PARTNERSHIP OR SIMILAR ENTITY, THEN YOU MUST BE AUTHORIZED TO SIGN FOR AND BIND THE ENTITY IN ORDER TO ACCEPT THE TERMS OF THIS AGREEMENT. THE LICENSES GRANTED UNDER THIS AGREEMENT ARE EXPRESSLY CONDITIONED UPON ACCEPTANCE BY SUCH AUTHORIZED PERSONNEL.
|
27
|
+
</p><p>
|
28
|
+
IF YOU HAVE ENTERED INTO A SEPARATE WRITTEN LICENSE AGREEMENT WITH SAUCE LABS FOR USE OF THE SOFTWARE, THE TERMS AND CONDITIONS OF SUCH OTHER AGREEMENT SHALL PREVAIL OVER ANY CONFLICTING TERMS OR CONDITIONS IN THIS AGREEMENT.
|
29
|
+
</p><p>
|
30
|
+
This End User License Agreement (“Agreement”) is between Sauce Labs Inc, located at 55 Sheridan St., San Francisco, CA 94103 (“Sauce Labs”) and the customer (individual or entity) that has downloaded or otherwise procured the licensed Software (as defined below) for use as an end user (“you”). This Agreement covers any Software and supporting technical documentation provided with the Software (“Documentation”).
|
31
|
+
</p>
|
32
|
+
<div>
|
33
|
+
<h4>1. Definitions. </h4>
|
34
|
+
<p>
|
35
|
+
<u>Effective Date:</u> means the earlier of the date you sign an Order Form or the date on which the Software is first made available to you.
|
36
|
+
Order Form: means any order on Sauce Labs’ standard order form which is executed by Sauce Labs and you and which references this Agreement. Each Order Form which references this Agreement shall be deemed a part of this Agreement. This Agreement is binding on you whether or not you execute an Order Form with Sauce Labs.
|
37
|
+
</p><p>
|
38
|
+
<u>Software:</u> means the Sauce Labs software product(s) provided in connection with this Agreement in object code form. “Software” shall also include any releases provided to or purchased by you under any separate support and maintenance agreement you may enter into with Sauce Labs. Unless otherwise noted, the Software and Documentation are referred to collectively herein as “Software”.
|
39
|
+
</p>
|
40
|
+
<h4>2. License.</h4>
|
41
|
+
<p>
|
42
|
+
2.1 <u>Grant of License</u>. Subject to all of the terms and conditions of this Agreement, Sauce Labs grants you a non-transferable, non-sublicensable, non-exclusive license to use the Software, but only in accordance with (i) the Documentation, (ii) this Agreement and (iii) any license term, subscription term or other user, computer, field of use or other restrictions set forth in the applicable Order Form or otherwise specified upon download of the Software.
|
43
|
+
</p><p>
|
44
|
+
2.2 <u>Installation and Copies</u>. Sauce Labs shall deliver the Software and Documentation by disk or other media or make it available for download in electronic form. Sauce Labs shall also provide you with electronic passwords or other enabling mechanisms if necessary to permit the licensed usage of the Software. Delivery shall be deemed to occur as of the Effective Date (or, if later, such date on which the Software and license keys are first made available to you). You may copy and install the number of copies of Software you indicated to Sauce Labs at the time of download. You may also make one copy of the Software for back-up and archival purposes.
|
45
|
+
</p><p>
|
46
|
+
2.3 <u>License Restrictions</u>. You shall not (and shall not allow any third party to): (a) work around any technical limitations in the Software; (b) decompile, disassemble, or otherwise reverse engineer the Software or attempt to reconstruct or discover any source code, underlying ideas, algorithms, file formats or programming interfaces of the Software by any means whatsoever (except and only to the extent that applicable law prohibits or restricts reverse engineering restrictions);(c) distribute, sell, sublicense, rent, lease or use the Software (or any portion thereof) for time sharing, commercial hosting, service provider or like purposes; (d) remove any product identification, proprietary, copyright or other notices contained in the Software; (e) modify any part of the Software, create a derivative work of any part of the Software, or incorporate the Software into or with other software, except to the extent expressly authorized in writing by Sauce Labs; or (f) publicly disseminate performance information or analysis (including, without limitation, benchmarks) from any source relating to the Software.
|
47
|
+
</p><p>
|
48
|
+
2.4 <u>Special Provision regarding Beta or Evaluation Code</u>. If the Software was provided to you free of charge or is otherwise designated as a “beta” or “evaluation” release, you acknowledge that the Software may not be complete or fully functional and furthermore that Sauce Labs provides the Software to you without any support, maintenance or other obligation of any kind. Sauce Labs does not guarantee that the Software will continue to be made available for any period of time or that any future release of the Software will be made available under the same terms.
|
49
|
+
</p><p>
|
50
|
+
2.5 <u>Third-Party Open Source Code</u>. The Software may contain or be provided with components subject to the terms and conditions of “open source” software licenses (“Open Source Software”). Open Source Software may be identified in the Documentation, legal notices or as otherwise designated by Sauce Labs or provided to Customer upon Customer’s written request. To the extent required by the license that accompanies the Open Source Software, the terms of such license will apply in lieu of the terms of this Agreement with respect to such Open Source Software, including, without limitation, any provisions governing access to source code, modification or reverse engineering.
|
51
|
+
</p><p>
|
52
|
+
<h4>3. Ownership.</h4>
|
53
|
+
<p>
|
54
|
+
Notwithstanding anything to the contrary contained herein, except for the limited license rights expressly provided herein, Sauce Labs and its suppliers have and will retain all rights, title and interest (including, without limitation, all patent, copyright, trademark, trade secret and other intellectual property rights) in and to the Software and all copies, modifications and derivative works thereof (including any changes which incorporate any of your ideas, feedback or suggestions). You acknowledge that you are obtaining only a limited license right to the Software and that irrespective of any use of the words “purchase”, “sale” or like terms hereunder no ownership rights are being conveyed to you in the Software or any copy of the Software under this Agreement or otherwise.
|
55
|
+
</p>
|
56
|
+
<h4>4. Term of Agreement.</h4>
|
57
|
+
<p>
|
58
|
+
4.1 <u>Term</u>. This Agreement is effective as of the Effective Date and expires at such time as all licenses hereunder have expired in accordance with their own terms (the “Term”). Either party may terminate this Agreement (including all related Order Forms) if the other party: (a) fails to cure any material breach of this Agreement within thirty (30) days after written notice of such breach; (b) ceases operation without a successor; or (c) seeks protection under any bankruptcy, receivership, trust deed, creditors arrangement, composition or comparable proceeding, or if any such proceeding is instituted against such party (and not dismissed within sixty (60) days)). Termination is not an exclusive remedy and the exercise by either party of any remedy under this Agreement will be without prejudice to any other remedies it may have under this Agreement, by law, or otherwise.
|
59
|
+
</p><p>
|
60
|
+
4.2 <u>Termination</u>. Upon any expiration or termination of this Agreement, you shall cease any and all use of any Software and destroy all copies thereof and so certify to Sauce Labs in writing.
|
61
|
+
</p><p>
|
62
|
+
4.3 <u>Survival</u>. Sections 2.3 (License Restrictions), 3 (Ownership), 4 (Term of Agreement), 5 (Warranty Disclaimer), 7 (Limitation of Remedies and Damages), 8 (Confidential Information), 10 (Export Compliance) and 11 (General) shall survive any termination or expiration of this Agreement.
|
63
|
+
|
64
|
+
<h4>5. Warranty Disclaimer. </h4>
|
65
|
+
<p>
|
66
|
+
THE SOFTWARE AND ALL SERVICES ARE PROVIDED “AS IS”. NEITHER SAUCE LABS NOR ITS SUPPLIERS MAKES ANY OTHER WARRANTIES, CONDITIONS OR UNDERTAKINGS, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING BUT NOT LIMITED TO WARRANTIES OF title, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
|
67
|
+
</p><p>
|
68
|
+
YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS, WHICH THIS AGREEMENT CANNOT CHANGE.
|
69
|
+
</p>
|
70
|
+
<h4>6. Support & Maintenance.</h4>
|
71
|
+
<p>Sauce Labs may provide the support and maintenance services, if any, as
|
72
|
+
separately purchased by you and specified in the applicable Order Form. All
|
73
|
+
support & maintenance shall be provided pursuant to Sauce Labs’ standard service terms which are available upon request from Sauce Labs.
|
74
|
+
</p>
|
75
|
+
<h4>7. Limitation of Remedies and Damages.</h4>
|
76
|
+
<p>
|
77
|
+
7.1 NEITHER YOU NOR Sauce Labs (Including Sauce Labs’ suppliers) SHALL BE LIABLE FOR ANY LOSS OF USE, LOST DATA, FAILURE OF SECURITY MECHANISMS, INTERRUPTION OF BUSINESS, OR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND (INCLUDING LOST PROFITS), REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF INFORMED OF THE POSSIBILITY OF SUCH DAMAGES IN ADVANCE.
|
78
|
+
</p><p>
|
79
|
+
7.2 NOTWITHSTANDING ANY OTHER PROVISION OF THIS AGREEMENT, SAUCE LABS AND ITS SUPPLIERS’ ENTIRE LIABILITY TO YOU UNDER THIS AGREEMENT SHALL NOT EXCEED THE AMOUNT ACTUALLY PAID BY YOU TO SAUCE LABS UNDER THIS AGREEMENT.
|
80
|
+
</p><p>
|
81
|
+
7.3 The parties agree that the limitations specified in this Section 7 will survive and apply even if any limited remedy specified in this Agreement is found to have failed of its essential purpose.
|
82
|
+
</p>
|
83
|
+
<h4>8. Confidential Information.</h4>
|
84
|
+
<p>Any software, documentation or technical information provided by Sauce Labs (or its agents) shall be deemed “Sauce Labs Confidential Information” without any marking or further designation. Except as expressly authorized herein, you will hold in confidence and not use or disclose any Sauce Labs Confidential Information. You acknowledge that disclosure of Sauce Labs Confidential Information would cause substantial harm to Sauce Labs that could not be remedied by the payment of damages alone and therefore that upon any such disclosure by you, Sauce Labs shall be entitled to appropriate equitable relief in addition to whatever remedies it might have at law.
|
85
|
+
</p>
|
86
|
+
<h4>9. Customer Acknowledgement.</h4>
|
87
|
+
<p>
|
88
|
+
You agree that Sauce Labs may disclose you as a customer of Sauce Labs.
|
89
|
+
</p>
|
90
|
+
<h4>10. Export Compliance.</h4>
|
91
|
+
<p>You acknowledge that the Software is subject to export restrictions by the United States government and import restrictions by certain foreign governments. You shall not, and shall not allow any third-party to, remove or export from the United States or allow the export or re-export of any part of the Software or any direct product thereof: (i) into (or to a national or resident of) any embargoed or terrorist-supporting country; (ii) to anyone on the U.S. Commerce Department’s Table of Denial Orders or U.S. Treasury Department’s list of Specially Designated Nationals; (iii) to any country to which such export or re-export is restricted or prohibited, or as to which the United States government or any agency thereof requires an export license or other governmental approval at the time of export or re-export without first obtaining such license or approval; or (iv) otherwise in violation of any export or import restrictions, laws or regulations of any United States or foreign agency or authority. You agree to the foregoing and warrant that you are not located in, under the control of, or a national or resident of any such prohibited country or on any such prohibited party list. The Software is further restricted from being used for the design or development of nuclear, chemical, or biological weapons or missile technology, or for terrorist activity, without the prior permission of the United States government.
|
92
|
+
</p>
|
93
|
+
<h4>11. General.</h4>
|
94
|
+
<p>
|
95
|
+
11.1 <u>Assignment</u>. This Agreement will bind and inure to the benefit of each party’s permitted successors and assigns. Sauce Labs may assign this Agreement to any affiliate or in connection with a merger, reorganization, acquisition or other transfer of all or substantially all of Sauce Labs’ assets or voting securities. You may not assign or transfer this Agreement, in whole or in part, without Sauce Labs’ written consent. Any attempt to transfer or assign this Agreement without such written consent will be null and void.
|
96
|
+
</p><p>
|
97
|
+
11.2 <u>Severability</u>. If any provision of this Agreement shall be adjudged by any court of competent jurisdiction to be unenforceable or invalid, that provision shall be limited to the minimum extent necessary so that this Agreement shall otherwise remain in effect.
|
98
|
+
</p><p>
|
99
|
+
11.3 <u>Governing Law; Jurisdiction and Venue</u>. This Agreement shall be governed by the laws of The State of California and the United States without regard to conflicts of laws provisions thereof, and without regard to the United Nations Convention on the International Sale of Goods. The jurisdiction and venue for actions related to the subject matter hereof shall be the California state and United States federal courts located in San Francisco, California, and both parties hereby submit to the personal jurisdiction of such courts.
|
100
|
+
</p><p>
|
101
|
+
11.4 <u>Attorneys’ Fees and Costs</u>. The prevailing party in any action to enforce this Agreement will be entitled to recover its attorneys’ fees and costs in connection with such action.
|
102
|
+
</p><p>
|
103
|
+
11.5 <u>Notices and Reports</u>. Any notice or report hereunder shall be in writing. If to Sauce Labs, such notice or report shall be sent to Sauce Labs at the address above to the attention of “Legal Department”. If to you, such notice or report shall be sent to the address you provided upon placing your order. Notices and reports shall be deemed given: (i) upon receipt if by personal delivery; (ii) upon receipt if sent by certified or registered U.S. mail (return receipt requested); or (iii) one day after it is sent if by next day delivery by a major commercial delivery service.
|
104
|
+
</p><p>
|
105
|
+
11.6 <u>Amendments; Waivers</u>. No supplement, modification, or amendment of this Agreement shall be binding, unless executed in writing by a duly authorized representative of each party to this Agreement. No waiver will be implied from conduct or failure to enforce or exercise rights under this Agreement, nor will any waiver be effective unless in a writing signed by a duly authorized representative on behalf of the party claimed to have waived.
|
106
|
+
</p><p>
|
107
|
+
11.7 <u>Entire Agreement</u>. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. No provision of any purchase order or in any other business form employed by you will supersede the terms and conditions of this Agreement, and any such document issued by a party hereto relating to this Agreement shall be for administrative purposes only and shall have no legal effect. Notwithstanding the foregoing, if you have entered into a separate written license agreement signed by Sauce Labs for use of the Software, the terms and conditions of such other agreement shall prevail over any conflicting terms or conditions in this Agreement.
|
108
|
+
</p><p>
|
109
|
+
11.8 <u>Independent Contractors</u>. The parties to this Agreement are independent contractors. There is no relationship of partnership, joint venture, employment, franchise or agency created hereby between the parties. Neither party will have the power to bind the other or incur obligations on the other party’s behalf without the other party’s prior written consent.
|
110
|
+
</p><p>
|
111
|
+
11.9 <u>Force Majeure</u>. Neither party shall be liable to the other for any delay or failure to perform any obligation under this Agreement (except for a failure to pay fees) if the delay or failure is due to unforeseen events, which occur after the signing of this Agreement and which are beyond the reasonable control of the parties, such as strikes, blockade, war, terrorism, riots, natural disasters, refusal of license by the government or other governmental agencies, in so far as such an event prevents or delays the affected party from fulfilling its obligations and such party is not able to prevent or remove the force majeure at reasonable cost.
|
112
|
+
</p><p>
|
113
|
+
11.10 <u>Government End-Users</u>. The Software is commercial computer software. If the user or licensee of the Software is an agency, department, or other entity of the United States Government, the use, duplication, reproduction, release, modification, disclosure, or transfer of the Software, or any related documentation of any kind, including technical data and manuals, is restricted by a license agreement or by the terms of this Agreement in accordance with Federal Acquisition Regulation 12.212 for civilian purposes and Defense Federal Acquisition Regulation Supplement 227.7202 for military purposes. The Software was developed fully at private expense. All other use is prohibited.
|
114
|
+
</p>
|
115
|
+
</body>
|
116
|
+
</html>
|
Binary file
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
6
|
+
<string>English</string>
|
7
|
+
<key>CFBundleIdentifier</key>
|
8
|
+
<string>com.apple.xcode.dsym.sc</string>
|
9
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
10
|
+
<string>6.0</string>
|
11
|
+
<key>CFBundlePackageType</key>
|
12
|
+
<string>dSYM</string>
|
13
|
+
<key>CFBundleSignature</key>
|
14
|
+
<string>????</string>
|
15
|
+
<key>CFBundleShortVersionString</key>
|
16
|
+
<string>1.0</string>
|
17
|
+
<key>CFBundleVersion</key>
|
18
|
+
<string>1</string>
|
19
|
+
</dict>
|
20
|
+
</plist>
|
Binary file
|
@@ -0,0 +1,154 @@
|
|
1
|
+
#ifndef _SAUCECONNECT_H
|
2
|
+
#define _SAUCECONNECT_H
|
3
|
+
|
4
|
+
#include <stddef.h>
|
5
|
+
|
6
|
+
/*
|
7
|
+
* The definition of this structure is hidden from the API to be able to
|
8
|
+
* provide ABI compatibility if our Sauce Connect implementation changes. Use
|
9
|
+
* sc_new() and sc_free() to create/free it.
|
10
|
+
*/
|
11
|
+
struct sc_ctx;
|
12
|
+
|
13
|
+
/*
|
14
|
+
* Create/free a new Sauce Connect context. This can be called multiple times
|
15
|
+
* to create independent instances, to e.g. use multiple accounts.
|
16
|
+
*/
|
17
|
+
struct sc_ctx *sc_new(void);
|
18
|
+
void sc_free(struct sc_ctx *ctx);
|
19
|
+
|
20
|
+
/*
|
21
|
+
* Setter/getter for configuration parameters. vlen is the size of value. Do
|
22
|
+
* this before calling sc_init().
|
23
|
+
*/
|
24
|
+
#define SC_PARAM_IS_SERVER 0x01 /* int */
|
25
|
+
#define SC_PARAM_KGP_HOST 0x02 /* char * */
|
26
|
+
#define SC_PARAM_KGP_PORT 0x03 /* int */
|
27
|
+
#define SC_PARAM_EXT_HOST 0x04 /* char * */
|
28
|
+
#define SC_PARAM_EXT_PORT 0x05 /* int */
|
29
|
+
#define SC_PARAM_CERTFILE 0x06 /* char * */
|
30
|
+
#define SC_PARAM_KEYFILE 0x07 /* char * */
|
31
|
+
#define SC_PARAM_LOCAL_PORT 0x08 /* int */
|
32
|
+
#define SC_PARAM_USER 0x09 /* char * */
|
33
|
+
#define SC_PARAM_API_KEY 0x0a /* char * */
|
34
|
+
#define SC_PARAM_PROXY 0x0b /* char * */
|
35
|
+
#define SC_PARAM_PROXY_USERPWD 0x0c /* char * */
|
36
|
+
#define SC_PARAM_RECONNECT 0x0d /* int */
|
37
|
+
#define SC_PARAM_DNS_SERVERS 0x0e /* char * */
|
38
|
+
int sc_get(struct sc_ctx *ctx, int param, void *value, size_t vlen);
|
39
|
+
int sc_set(struct sc_ctx *ctx, int param, void *value);
|
40
|
+
|
41
|
+
/*
|
42
|
+
* Once we have set up our ctx, do some initialization. This makes sure
|
43
|
+
* everything is ready to start a new connection. Do this only after
|
44
|
+
* parameters are set via sc_set().
|
45
|
+
*/
|
46
|
+
int sc_init(struct sc_ctx *ctx);
|
47
|
+
|
48
|
+
/*
|
49
|
+
* Run the main event loop: connect to the peer, and start forwarding. Only
|
50
|
+
* returns if sc_stop() is called from another thread, or a fatal error
|
51
|
+
* happens Sauce Connect can't recover from.
|
52
|
+
*/
|
53
|
+
int sc_run(struct sc_ctx *ctx);
|
54
|
+
|
55
|
+
/*
|
56
|
+
* Stop the Sauce Connect main event loop. This can be used from e.g. another
|
57
|
+
* thread to stop SC in a clean way.
|
58
|
+
*/
|
59
|
+
int sc_stop(struct sc_ctx *ctx);
|
60
|
+
|
61
|
+
/*
|
62
|
+
* Get the current status of Sauce Connect.
|
63
|
+
*/
|
64
|
+
#define SC_STATUS_RUNNING 0x01
|
65
|
+
#define SC_STATUS_EXITING 0x02
|
66
|
+
int sc_status(struct sc_ctx *ctx);
|
67
|
+
|
68
|
+
/*
|
69
|
+
* Get information on Sauce Connect internals.
|
70
|
+
*/
|
71
|
+
#define SC_INFO_KGP_IS_CONNECTED 0x01
|
72
|
+
#define SC_INFO_KGP_LAST_STATUS_CHANGE 0x02
|
73
|
+
int sc_get_info(struct sc_ctx *ctx, int what, int *info);
|
74
|
+
|
75
|
+
/*
|
76
|
+
* Set a log callback the library will call when logging messages.
|
77
|
+
*/
|
78
|
+
typedef void (*sc_log_cb)(int severity, const char *msg);
|
79
|
+
|
80
|
+
void sc_set_log_fn(sc_log_cb cb);
|
81
|
+
|
82
|
+
#define SC_EXITCODE_UNKNOWN 0
|
83
|
+
#define SC_EXITCODE_ALLOC_ERROR 1
|
84
|
+
#define SC_EXITCODE_LOCAL_LISTEN_ERROR 2
|
85
|
+
#define SC_EXITCODE_LOCAL_ACCEPT_ERROR 3
|
86
|
+
#define SC_EXITCODE_KGP_INVALID_PACKET 4
|
87
|
+
#define SC_EXITCODE_KGP_CONNECT_ERROR 5
|
88
|
+
#define SC_EXITCODE_KGP_CONNECTION_CLOSED 6
|
89
|
+
#define SC_EXITCODE_KGP_LISTEN_ERROR 7
|
90
|
+
#define SC_EXITCODE_CMD_STOP 8
|
91
|
+
#define SC_EXITCODE_CMD_SOCKET_ERROR 9
|
92
|
+
#define SC_EXITCODE_CMD_CONNECTION_CLOSED 10
|
93
|
+
#define SC_EXITCODE_DNS_RESET_ERROR 11
|
94
|
+
int sc_error(struct sc_ctx *ctx);
|
95
|
+
|
96
|
+
static inline char *sc_err2str(int exitcode)
|
97
|
+
{
|
98
|
+
switch (exitcode) {
|
99
|
+
case SC_EXITCODE_UNKNOWN:
|
100
|
+
return "Unknown error or no error occured";
|
101
|
+
break;
|
102
|
+
case SC_EXITCODE_ALLOC_ERROR:
|
103
|
+
return "Allocation failed - out of memory?";
|
104
|
+
break;
|
105
|
+
case SC_EXITCODE_LOCAL_LISTEN_ERROR:
|
106
|
+
return "Failed to start Selenium listener. "
|
107
|
+
"Please make sure there are no other applications using "
|
108
|
+
"the Selenium port, or specify an alternative port for "
|
109
|
+
"Sauce Connect via the --se-port option";
|
110
|
+
break;
|
111
|
+
case SC_EXITCODE_LOCAL_ACCEPT_ERROR:
|
112
|
+
return "Failed to accept Selenium connection";
|
113
|
+
break;
|
114
|
+
case SC_EXITCODE_KGP_INVALID_PACKET:
|
115
|
+
return "Invalid KGP packet received";
|
116
|
+
break;
|
117
|
+
case SC_EXITCODE_KGP_CONNECT_ERROR:
|
118
|
+
return "KGP connection error";
|
119
|
+
break;
|
120
|
+
case SC_EXITCODE_KGP_CONNECTION_CLOSED:
|
121
|
+
return "KGP connection closed from the other side";
|
122
|
+
break;
|
123
|
+
case SC_EXITCODE_KGP_LISTEN_ERROR:
|
124
|
+
return "Failed to start KGP listener";
|
125
|
+
break;
|
126
|
+
case SC_EXITCODE_CMD_STOP:
|
127
|
+
return "Terminated";
|
128
|
+
break;
|
129
|
+
case SC_EXITCODE_CMD_SOCKET_ERROR:
|
130
|
+
return "Internal error: command socket failure";
|
131
|
+
break;
|
132
|
+
case SC_EXITCODE_CMD_CONNECTION_CLOSED:
|
133
|
+
return "Internal error: command socket closed";
|
134
|
+
break;
|
135
|
+
case SC_EXITCODE_DNS_RESET_ERROR:
|
136
|
+
return "DNS reset failed";
|
137
|
+
break;
|
138
|
+
default:
|
139
|
+
return "Invalid exit code";
|
140
|
+
break;
|
141
|
+
}
|
142
|
+
}
|
143
|
+
|
144
|
+
/*
|
145
|
+
* Enable SSL verification for KGP. This is the default.
|
146
|
+
*/
|
147
|
+
void sc_ssl_enable_verification(void);
|
148
|
+
|
149
|
+
/*
|
150
|
+
* Disable SSL verification for KGP. This is the default.
|
151
|
+
*/
|
152
|
+
void sc_ssl_disable_verification(void);
|
153
|
+
|
154
|
+
#endif
|
Binary file
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# libsauceconnect.la - a libtool library file
|
2
|
+
# Generated by libtool (GNU libtool) 2.4.2
|
3
|
+
#
|
4
|
+
# Please DO NOT delete this file!
|
5
|
+
# It is necessary for linking the library.
|
6
|
+
|
7
|
+
# The name that we can dlopen(3).
|
8
|
+
dlname=''
|
9
|
+
|
10
|
+
# Names of this library.
|
11
|
+
library_names=''
|
12
|
+
|
13
|
+
# The name of the static archive.
|
14
|
+
old_library='libsauceconnect.a'
|
15
|
+
|
16
|
+
# Linker flags that can not go in dependency_libs.
|
17
|
+
inherited_linker_flags=' -framework CoreFoundation -framework Security'
|
18
|
+
|
19
|
+
# Libraries that this one depends upon.
|
20
|
+
dependency_libs=' -L/Users/travis/build/saucelabs/libsauceconnect/build/Darwin/openssl/lib -L/Users/travis/build/saucelabs/libsauceconnect/curl/ares /Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib/libevent.la /Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib/libevent_openssl.la /Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib/libcares.la /Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib/libcurl.la /Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib/libcares.la -lz -lssl -lcrypto -ldl'
|
21
|
+
|
22
|
+
# Names of additional weak libraries provided by this library
|
23
|
+
weak_library_names=''
|
24
|
+
|
25
|
+
# Version information for libsauceconnect.
|
26
|
+
current=0
|
27
|
+
age=0
|
28
|
+
revision=0
|
29
|
+
|
30
|
+
# Is this an already installed library?
|
31
|
+
installed=yes
|
32
|
+
|
33
|
+
# Should we warn about portability when linking against -modules?
|
34
|
+
shouldnotlink=no
|
35
|
+
|
36
|
+
# Files to dlopen/dlpreopen
|
37
|
+
dlopen=''
|
38
|
+
dlpreopen=''
|
39
|
+
|
40
|
+
# Directory that this library needs to be installed in:
|
41
|
+
libdir='/Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib'
|
@@ -0,0 +1,116 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/html4/loose.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<title>Sauce Connect License</title>
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<div style="margin-bottom: 40px">
|
10
|
+
<center><h3>
|
11
|
+
SAUCE LABS INC <br />
|
12
|
+
END USER LICENSE AGREEMENT (“EULA”) <br />
|
13
|
+
for: <br />
|
14
|
+
Public Release of Sauce Connect <br />
|
15
|
+
</h3></center>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<p><b>
|
19
|
+
READ THIS AGREEMENT CAREFULLY.
|
20
|
+
</b></p>
|
21
|
+
<p>
|
22
|
+
BY CLICKING ON THE “I AGREE” BUTTON OR INSTALLING OR USING ALL OR ANY PORTION OF THE SOFTWARE, YOU ARE ACCEPTING ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. YOU AGREE THAT THIS AGREEMENT IS ENFORCEABLE LIKE ANY WRITTEN AGREEMENT SIGNED BY YOU.
|
23
|
+
</p><p>
|
24
|
+
IF YOU DO NOT AGREE TO ALL OF THESE TERMS AND CONDITIONS, CLICK “I DON’T AGREE”. YOU WILL NOT BE GIVEN ACCESS TO THE SOFTWARE UNLESS YOU ACCEPT THE TERMS OF THIS AGREEMENT. IF YOU HAVE PAID A LICENSE FEE FOR USE OF THE SOFTWARE AND DO NOT AGREE TO THESE TERMS, YOU MAY RETURN OR CONFIRM DELETION OF ALL COPIES OF THE SOFTWARE FOR A FULL REFUND PROVIDED YOU (A) DO NOT USE THE SOFTWARE AND (B) RETURN THE SOFTWARE WITHIN THIRTY (30) DAYS OF YOUR INITIAL PURCHASE.
|
25
|
+
</p><p>
|
26
|
+
IF YOU WISH TO USE the Software AS AN EMPLOYEE, CONTRACTOR, OR AGENT OF A CORPORATION, PARTNERSHIP OR SIMILAR ENTITY, THEN YOU MUST BE AUTHORIZED TO SIGN FOR AND BIND THE ENTITY IN ORDER TO ACCEPT THE TERMS OF THIS AGREEMENT. THE LICENSES GRANTED UNDER THIS AGREEMENT ARE EXPRESSLY CONDITIONED UPON ACCEPTANCE BY SUCH AUTHORIZED PERSONNEL.
|
27
|
+
</p><p>
|
28
|
+
IF YOU HAVE ENTERED INTO A SEPARATE WRITTEN LICENSE AGREEMENT WITH SAUCE LABS FOR USE OF THE SOFTWARE, THE TERMS AND CONDITIONS OF SUCH OTHER AGREEMENT SHALL PREVAIL OVER ANY CONFLICTING TERMS OR CONDITIONS IN THIS AGREEMENT.
|
29
|
+
</p><p>
|
30
|
+
This End User License Agreement (“Agreement”) is between Sauce Labs Inc, located at 55 Sheridan St., San Francisco, CA 94103 (“Sauce Labs”) and the customer (individual or entity) that has downloaded or otherwise procured the licensed Software (as defined below) for use as an end user (“you”). This Agreement covers any Software and supporting technical documentation provided with the Software (“Documentation”).
|
31
|
+
</p>
|
32
|
+
<div>
|
33
|
+
<h4>1. Definitions. </h4>
|
34
|
+
<p>
|
35
|
+
<u>Effective Date:</u> means the earlier of the date you sign an Order Form or the date on which the Software is first made available to you.
|
36
|
+
Order Form: means any order on Sauce Labs’ standard order form which is executed by Sauce Labs and you and which references this Agreement. Each Order Form which references this Agreement shall be deemed a part of this Agreement. This Agreement is binding on you whether or not you execute an Order Form with Sauce Labs.
|
37
|
+
</p><p>
|
38
|
+
<u>Software:</u> means the Sauce Labs software product(s) provided in connection with this Agreement in object code form. “Software” shall also include any releases provided to or purchased by you under any separate support and maintenance agreement you may enter into with Sauce Labs. Unless otherwise noted, the Software and Documentation are referred to collectively herein as “Software”.
|
39
|
+
</p>
|
40
|
+
<h4>2. License.</h4>
|
41
|
+
<p>
|
42
|
+
2.1 <u>Grant of License</u>. Subject to all of the terms and conditions of this Agreement, Sauce Labs grants you a non-transferable, non-sublicensable, non-exclusive license to use the Software, but only in accordance with (i) the Documentation, (ii) this Agreement and (iii) any license term, subscription term or other user, computer, field of use or other restrictions set forth in the applicable Order Form or otherwise specified upon download of the Software.
|
43
|
+
</p><p>
|
44
|
+
2.2 <u>Installation and Copies</u>. Sauce Labs shall deliver the Software and Documentation by disk or other media or make it available for download in electronic form. Sauce Labs shall also provide you with electronic passwords or other enabling mechanisms if necessary to permit the licensed usage of the Software. Delivery shall be deemed to occur as of the Effective Date (or, if later, such date on which the Software and license keys are first made available to you). You may copy and install the number of copies of Software you indicated to Sauce Labs at the time of download. You may also make one copy of the Software for back-up and archival purposes.
|
45
|
+
</p><p>
|
46
|
+
2.3 <u>License Restrictions</u>. You shall not (and shall not allow any third party to): (a) work around any technical limitations in the Software; (b) decompile, disassemble, or otherwise reverse engineer the Software or attempt to reconstruct or discover any source code, underlying ideas, algorithms, file formats or programming interfaces of the Software by any means whatsoever (except and only to the extent that applicable law prohibits or restricts reverse engineering restrictions);(c) distribute, sell, sublicense, rent, lease or use the Software (or any portion thereof) for time sharing, commercial hosting, service provider or like purposes; (d) remove any product identification, proprietary, copyright or other notices contained in the Software; (e) modify any part of the Software, create a derivative work of any part of the Software, or incorporate the Software into or with other software, except to the extent expressly authorized in writing by Sauce Labs; or (f) publicly disseminate performance information or analysis (including, without limitation, benchmarks) from any source relating to the Software.
|
47
|
+
</p><p>
|
48
|
+
2.4 <u>Special Provision regarding Beta or Evaluation Code</u>. If the Software was provided to you free of charge or is otherwise designated as a “beta” or “evaluation” release, you acknowledge that the Software may not be complete or fully functional and furthermore that Sauce Labs provides the Software to you without any support, maintenance or other obligation of any kind. Sauce Labs does not guarantee that the Software will continue to be made available for any period of time or that any future release of the Software will be made available under the same terms.
|
49
|
+
</p><p>
|
50
|
+
2.5 <u>Third-Party Open Source Code</u>. The Software may contain or be provided with components subject to the terms and conditions of “open source” software licenses (“Open Source Software”). Open Source Software may be identified in the Documentation, legal notices or as otherwise designated by Sauce Labs or provided to Customer upon Customer’s written request. To the extent required by the license that accompanies the Open Source Software, the terms of such license will apply in lieu of the terms of this Agreement with respect to such Open Source Software, including, without limitation, any provisions governing access to source code, modification or reverse engineering.
|
51
|
+
</p><p>
|
52
|
+
<h4>3. Ownership.</h4>
|
53
|
+
<p>
|
54
|
+
Notwithstanding anything to the contrary contained herein, except for the limited license rights expressly provided herein, Sauce Labs and its suppliers have and will retain all rights, title and interest (including, without limitation, all patent, copyright, trademark, trade secret and other intellectual property rights) in and to the Software and all copies, modifications and derivative works thereof (including any changes which incorporate any of your ideas, feedback or suggestions). You acknowledge that you are obtaining only a limited license right to the Software and that irrespective of any use of the words “purchase”, “sale” or like terms hereunder no ownership rights are being conveyed to you in the Software or any copy of the Software under this Agreement or otherwise.
|
55
|
+
</p>
|
56
|
+
<h4>4. Term of Agreement.</h4>
|
57
|
+
<p>
|
58
|
+
4.1 <u>Term</u>. This Agreement is effective as of the Effective Date and expires at such time as all licenses hereunder have expired in accordance with their own terms (the “Term”). Either party may terminate this Agreement (including all related Order Forms) if the other party: (a) fails to cure any material breach of this Agreement within thirty (30) days after written notice of such breach; (b) ceases operation without a successor; or (c) seeks protection under any bankruptcy, receivership, trust deed, creditors arrangement, composition or comparable proceeding, or if any such proceeding is instituted against such party (and not dismissed within sixty (60) days)). Termination is not an exclusive remedy and the exercise by either party of any remedy under this Agreement will be without prejudice to any other remedies it may have under this Agreement, by law, or otherwise.
|
59
|
+
</p><p>
|
60
|
+
4.2 <u>Termination</u>. Upon any expiration or termination of this Agreement, you shall cease any and all use of any Software and destroy all copies thereof and so certify to Sauce Labs in writing.
|
61
|
+
</p><p>
|
62
|
+
4.3 <u>Survival</u>. Sections 2.3 (License Restrictions), 3 (Ownership), 4 (Term of Agreement), 5 (Warranty Disclaimer), 7 (Limitation of Remedies and Damages), 8 (Confidential Information), 10 (Export Compliance) and 11 (General) shall survive any termination or expiration of this Agreement.
|
63
|
+
|
64
|
+
<h4>5. Warranty Disclaimer. </h4>
|
65
|
+
<p>
|
66
|
+
THE SOFTWARE AND ALL SERVICES ARE PROVIDED “AS IS”. NEITHER SAUCE LABS NOR ITS SUPPLIERS MAKES ANY OTHER WARRANTIES, CONDITIONS OR UNDERTAKINGS, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING BUT NOT LIMITED TO WARRANTIES OF title, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
|
67
|
+
</p><p>
|
68
|
+
YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS, WHICH THIS AGREEMENT CANNOT CHANGE.
|
69
|
+
</p>
|
70
|
+
<h4>6. Support & Maintenance.</h4>
|
71
|
+
<p>Sauce Labs may provide the support and maintenance services, if any, as
|
72
|
+
separately purchased by you and specified in the applicable Order Form. All
|
73
|
+
support & maintenance shall be provided pursuant to Sauce Labs’ standard service terms which are available upon request from Sauce Labs.
|
74
|
+
</p>
|
75
|
+
<h4>7. Limitation of Remedies and Damages.</h4>
|
76
|
+
<p>
|
77
|
+
7.1 NEITHER YOU NOR Sauce Labs (Including Sauce Labs’ suppliers) SHALL BE LIABLE FOR ANY LOSS OF USE, LOST DATA, FAILURE OF SECURITY MECHANISMS, INTERRUPTION OF BUSINESS, OR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND (INCLUDING LOST PROFITS), REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF INFORMED OF THE POSSIBILITY OF SUCH DAMAGES IN ADVANCE.
|
78
|
+
</p><p>
|
79
|
+
7.2 NOTWITHSTANDING ANY OTHER PROVISION OF THIS AGREEMENT, SAUCE LABS AND ITS SUPPLIERS’ ENTIRE LIABILITY TO YOU UNDER THIS AGREEMENT SHALL NOT EXCEED THE AMOUNT ACTUALLY PAID BY YOU TO SAUCE LABS UNDER THIS AGREEMENT.
|
80
|
+
</p><p>
|
81
|
+
7.3 The parties agree that the limitations specified in this Section 7 will survive and apply even if any limited remedy specified in this Agreement is found to have failed of its essential purpose.
|
82
|
+
</p>
|
83
|
+
<h4>8. Confidential Information.</h4>
|
84
|
+
<p>Any software, documentation or technical information provided by Sauce Labs (or its agents) shall be deemed “Sauce Labs Confidential Information” without any marking or further designation. Except as expressly authorized herein, you will hold in confidence and not use or disclose any Sauce Labs Confidential Information. You acknowledge that disclosure of Sauce Labs Confidential Information would cause substantial harm to Sauce Labs that could not be remedied by the payment of damages alone and therefore that upon any such disclosure by you, Sauce Labs shall be entitled to appropriate equitable relief in addition to whatever remedies it might have at law.
|
85
|
+
</p>
|
86
|
+
<h4>9. Customer Acknowledgement.</h4>
|
87
|
+
<p>
|
88
|
+
You agree that Sauce Labs may disclose you as a customer of Sauce Labs.
|
89
|
+
</p>
|
90
|
+
<h4>10. Export Compliance.</h4>
|
91
|
+
<p>You acknowledge that the Software is subject to export restrictions by the United States government and import restrictions by certain foreign governments. You shall not, and shall not allow any third-party to, remove or export from the United States or allow the export or re-export of any part of the Software or any direct product thereof: (i) into (or to a national or resident of) any embargoed or terrorist-supporting country; (ii) to anyone on the U.S. Commerce Department’s Table of Denial Orders or U.S. Treasury Department’s list of Specially Designated Nationals; (iii) to any country to which such export or re-export is restricted or prohibited, or as to which the United States government or any agency thereof requires an export license or other governmental approval at the time of export or re-export without first obtaining such license or approval; or (iv) otherwise in violation of any export or import restrictions, laws or regulations of any United States or foreign agency or authority. You agree to the foregoing and warrant that you are not located in, under the control of, or a national or resident of any such prohibited country or on any such prohibited party list. The Software is further restricted from being used for the design or development of nuclear, chemical, or biological weapons or missile technology, or for terrorist activity, without the prior permission of the United States government.
|
92
|
+
</p>
|
93
|
+
<h4>11. General.</h4>
|
94
|
+
<p>
|
95
|
+
11.1 <u>Assignment</u>. This Agreement will bind and inure to the benefit of each party’s permitted successors and assigns. Sauce Labs may assign this Agreement to any affiliate or in connection with a merger, reorganization, acquisition or other transfer of all or substantially all of Sauce Labs’ assets or voting securities. You may not assign or transfer this Agreement, in whole or in part, without Sauce Labs’ written consent. Any attempt to transfer or assign this Agreement without such written consent will be null and void.
|
96
|
+
</p><p>
|
97
|
+
11.2 <u>Severability</u>. If any provision of this Agreement shall be adjudged by any court of competent jurisdiction to be unenforceable or invalid, that provision shall be limited to the minimum extent necessary so that this Agreement shall otherwise remain in effect.
|
98
|
+
</p><p>
|
99
|
+
11.3 <u>Governing Law; Jurisdiction and Venue</u>. This Agreement shall be governed by the laws of The State of California and the United States without regard to conflicts of laws provisions thereof, and without regard to the United Nations Convention on the International Sale of Goods. The jurisdiction and venue for actions related to the subject matter hereof shall be the California state and United States federal courts located in San Francisco, California, and both parties hereby submit to the personal jurisdiction of such courts.
|
100
|
+
</p><p>
|
101
|
+
11.4 <u>Attorneys’ Fees and Costs</u>. The prevailing party in any action to enforce this Agreement will be entitled to recover its attorneys’ fees and costs in connection with such action.
|
102
|
+
</p><p>
|
103
|
+
11.5 <u>Notices and Reports</u>. Any notice or report hereunder shall be in writing. If to Sauce Labs, such notice or report shall be sent to Sauce Labs at the address above to the attention of “Legal Department”. If to you, such notice or report shall be sent to the address you provided upon placing your order. Notices and reports shall be deemed given: (i) upon receipt if by personal delivery; (ii) upon receipt if sent by certified or registered U.S. mail (return receipt requested); or (iii) one day after it is sent if by next day delivery by a major commercial delivery service.
|
104
|
+
</p><p>
|
105
|
+
11.6 <u>Amendments; Waivers</u>. No supplement, modification, or amendment of this Agreement shall be binding, unless executed in writing by a duly authorized representative of each party to this Agreement. No waiver will be implied from conduct or failure to enforce or exercise rights under this Agreement, nor will any waiver be effective unless in a writing signed by a duly authorized representative on behalf of the party claimed to have waived.
|
106
|
+
</p><p>
|
107
|
+
11.7 <u>Entire Agreement</u>. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. No provision of any purchase order or in any other business form employed by you will supersede the terms and conditions of this Agreement, and any such document issued by a party hereto relating to this Agreement shall be for administrative purposes only and shall have no legal effect. Notwithstanding the foregoing, if you have entered into a separate written license agreement signed by Sauce Labs for use of the Software, the terms and conditions of such other agreement shall prevail over any conflicting terms or conditions in this Agreement.
|
108
|
+
</p><p>
|
109
|
+
11.8 <u>Independent Contractors</u>. The parties to this Agreement are independent contractors. There is no relationship of partnership, joint venture, employment, franchise or agency created hereby between the parties. Neither party will have the power to bind the other or incur obligations on the other party’s behalf without the other party’s prior written consent.
|
110
|
+
</p><p>
|
111
|
+
11.9 <u>Force Majeure</u>. Neither party shall be liable to the other for any delay or failure to perform any obligation under this Agreement (except for a failure to pay fees) if the delay or failure is due to unforeseen events, which occur after the signing of this Agreement and which are beyond the reasonable control of the parties, such as strikes, blockade, war, terrorism, riots, natural disasters, refusal of license by the government or other governmental agencies, in so far as such an event prevents or delays the affected party from fulfilling its obligations and such party is not able to prevent or remove the force majeure at reasonable cost.
|
112
|
+
</p><p>
|
113
|
+
11.10 <u>Government End-Users</u>. The Software is commercial computer software. If the user or licensee of the Software is an agency, department, or other entity of the United States Government, the use, duplication, reproduction, release, modification, disclosure, or transfer of the Software, or any related documentation of any kind, including technical data and manuals, is restricted by a license agreement or by the terms of this Agreement in accordance with Federal Acquisition Regulation 12.212 for civilian purposes and Defense Federal Acquisition Regulation Supplement 227.7202 for military purposes. The Software was developed fully at private expense. All other use is prohibited.
|
114
|
+
</p>
|
115
|
+
</body>
|
116
|
+
</html>
|
metadata
ADDED
@@ -0,0 +1,154 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: blade-sauce_labs_plugin
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Javan Makhmali
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-08-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.10'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: webmock
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.21.0
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.21.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: blade
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: faraday
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: childprocess
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description:
|
98
|
+
email:
|
99
|
+
- javan@javan.us
|
100
|
+
executables: []
|
101
|
+
extensions: []
|
102
|
+
extra_rdoc_files: []
|
103
|
+
files:
|
104
|
+
- ".gitignore"
|
105
|
+
- Gemfile
|
106
|
+
- LICENSE.txt
|
107
|
+
- README.md
|
108
|
+
- Rakefile
|
109
|
+
- bin/console
|
110
|
+
- bin/rake
|
111
|
+
- bin/setup
|
112
|
+
- blade-sauce_labs_plugin.gemspec
|
113
|
+
- lib/blade/sauce_labs_plugin.rb
|
114
|
+
- lib/blade/sauce_labs_plugin/cli.rb
|
115
|
+
- lib/blade/sauce_labs_plugin/client.rb
|
116
|
+
- lib/blade/sauce_labs_plugin/tunnel.rb
|
117
|
+
- lib/blade/sauce_labs_plugin/version.rb
|
118
|
+
- support/sc-linux/bin/sc
|
119
|
+
- support/sc-linux/include/sauceconnect.h
|
120
|
+
- support/sc-linux/lib/libsauceconnect.a
|
121
|
+
- support/sc-linux/lib/libsauceconnect.la
|
122
|
+
- support/sc-linux/license.html
|
123
|
+
- support/sc-osx/bin/sc
|
124
|
+
- support/sc-osx/bin/sc.dSYM/Contents/Info.plist
|
125
|
+
- support/sc-osx/bin/sc.dSYM/Contents/Resources/DWARF/sc
|
126
|
+
- support/sc-osx/include/sauceconnect.h
|
127
|
+
- support/sc-osx/lib/libsauceconnect.a
|
128
|
+
- support/sc-osx/lib/libsauceconnect.la
|
129
|
+
- support/sc-osx/license.html
|
130
|
+
homepage: https://github.com/javan/blade-sauce_labs_plugin
|
131
|
+
licenses:
|
132
|
+
- MIT
|
133
|
+
metadata: {}
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
require_paths:
|
137
|
+
- lib
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
requirements: []
|
149
|
+
rubyforge_project:
|
150
|
+
rubygems_version: 2.4.6
|
151
|
+
signing_key:
|
152
|
+
specification_version: 4
|
153
|
+
summary: Blade Runner plugin for Sauce Labs (saucelabs.com)
|
154
|
+
test_files: []
|