2021-10-14 04:25:33 +08:00
|
|
|
# Start manager on the current node and configure it not to
|
|
|
|
# terminate automatically, so there is no race condition
|
|
|
|
# when starting/stopping Embedded runtimes in parallel
|
|
|
|
Livebook.Runtime.ErlDist.NodeManager.start(
|
|
|
|
auto_termination: false,
|
|
|
|
unload_modules_on_termination: false
|
|
|
|
)
|
|
|
|
|
2022-04-02 02:13:37 +08:00
|
|
|
# Use the embedded runtime in tests by default, so they are
|
|
|
|
# cheaper to run. Other runtimes can be tested by starting
|
|
|
|
# and setting them explicitly
|
|
|
|
Application.put_env(:livebook, :default_runtime, Livebook.Runtime.Embedded.new())
|
|
|
|
|
2022-04-04 18:20:36 +08:00
|
|
|
Application.put_env(:livebook, :runtime_modules, [
|
|
|
|
Livebook.Runtime.ElixirStandalone,
|
|
|
|
Livebook.Runtime.Attached,
|
|
|
|
Livebook.Runtime.Embedded
|
|
|
|
])
|
|
|
|
|
2022-04-30 23:14:10 +08:00
|
|
|
defmodule Livebook.Runtime.Embedded.Packages do
|
|
|
|
def list() do
|
2022-04-02 02:13:37 +08:00
|
|
|
[
|
|
|
|
%{
|
2022-04-29 19:45:33 +08:00
|
|
|
dependency: {:jason, "~> 1.3.0"},
|
|
|
|
description: "A blazing fast JSON parser and generator in pure Elixir",
|
|
|
|
name: "jason",
|
|
|
|
url: "https://hex.pm/packages/jason",
|
|
|
|
version: "1.3.0"
|
2022-04-02 02:13:37 +08:00
|
|
|
}
|
|
|
|
]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# Enable dependency saerch for the embedded runtime
|
|
|
|
Application.put_env(:livebook, Livebook.Runtime.Embedded,
|
2022-04-30 23:14:10 +08:00
|
|
|
load_packages: {Livebook.Runtime.Embedded.Packages, :list, []}
|
2022-04-02 02:13:37 +08:00
|
|
|
)
|
|
|
|
|
2022-01-31 18:51:57 +08:00
|
|
|
# Disable autosaving
|
2022-10-07 01:53:37 +08:00
|
|
|
Livebook.Storage.insert(:settings, "global", autosave_path: nil)
|
2022-01-31 18:51:57 +08:00
|
|
|
|
2021-04-21 01:34:17 +08:00
|
|
|
erl_docs_available? = Code.fetch_docs(:gen_server) != {:error, :chunk_not_found}
|
|
|
|
|
2022-10-11 22:27:27 +08:00
|
|
|
enterprise_path = System.get_env("ENTERPRISE_PATH", "../enterprise")
|
|
|
|
enterprise_available? = File.exists?(enterprise_path)
|
2021-04-21 01:34:17 +08:00
|
|
|
|
2022-10-11 22:27:27 +08:00
|
|
|
ExUnit.start(
|
|
|
|
assert_receive_timeout: 1_500,
|
|
|
|
exclude: [erl_docs: erl_docs_available?, enterprise_integration: !enterprise_available?]
|
|
|
|
)
|