blob: a6a6690a9a7be69aa5927cf0a695a996f50f312b [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Checks Spec class that describes config and command line to start Ignite-aware service.
"""
from unittest.mock import Mock
import pytest
from ignitetest.services.utils.ignite_spec import IgniteApplicationSpec
from ignitetest.utils.ignite_test import JFR_ENABLED
@pytest.fixture
def service():
"""
Create mock of service.
"""
service = Mock()
service.log_dir = ''
service.persistent_root = ''
service.context.globals = {"cluster_size": 1}
return service
"""
Checks that the JVM options passed via constructor are not overriden by the default ones.
"""
def check_default_options__are_used__if_jvm_opts_is_not_passed(service):
spec = IgniteApplicationSpec(service)
assert "-DIGNITE_NO_SHUTDOWN_HOOK=true" in spec.jvm_opts
assert "-Dlog4j.configDebug=true" in spec.jvm_opts
def check_default_options__are_overriden__if_passed_as_jvm_opts_string(service):
spec_with_default = IgniteApplicationSpec(service)
spec_with_default_overriden = IgniteApplicationSpec(service, jvm_opts="-Dlog4j.configDebug=false")
assert "-Dlog4j.configDebug=true" in spec_with_default.jvm_opts
assert "-Dlog4j.configDebug=true" not in spec_with_default_overriden.jvm_opts
assert "-Dlog4j.configDebug=false" not in spec_with_default.jvm_opts
assert "-Dlog4j.configDebug=false" in spec_with_default_overriden.jvm_opts
def check_default_options__are_overriden__if_passed_as_jvm_opts_list(service):
spec_with_default = IgniteApplicationSpec(service)
spec_with_default_overriden = IgniteApplicationSpec(service, jvm_opts=["-Dlog4j.configDebug=false"])
assert "-Dlog4j.configDebug=true" in spec_with_default.jvm_opts
assert "-Dlog4j.configDebug=true" not in spec_with_default_overriden.jvm_opts
assert "-Dlog4j.configDebug=false" not in spec_with_default.jvm_opts
assert "-Dlog4j.configDebug=false" in spec_with_default_overriden.jvm_opts
def check_default_jvm_options__are_not_used__if_merge_with_default_is_false(service):
spec = IgniteApplicationSpec(service, jvm_opts="-Xmx256m -ea", merge_with_default=False)
assert "-Xmx256m" in spec.jvm_opts
assert "-ea" in spec.jvm_opts
assert len(spec.jvm_opts) == 2
spec = IgniteApplicationSpec(service, merge_with_default=False)
assert len(spec.jvm_opts) == 0
def check_boolean_options__go_after_default_ones_and_overwrite_them__if_passed_via_jvm_opt(service):
service.context.globals[JFR_ENABLED] = True
spec = IgniteApplicationSpec(service, jvm_opts="-XX:-UnlockCommercialFeatures")
assert "-XX:-UnlockCommercialFeatures" in spec.jvm_opts
assert "-XX:-UnlockCommercialFeatures" in spec.jvm_opts
assert spec.jvm_opts.index("-XX:-UnlockCommercialFeatures") >\
spec.jvm_opts.index("-XX:+UnlockCommercialFeatures")
def check_colon_options__go_after_default_ones_and_overwrite_them__if_passed_via_jvm_opt(service):
service.log_dir = "/default-path"
spec = IgniteApplicationSpec(service, jvm_opts=["-Xloggc:/some-non-default-path/gc.log"])
assert "-Xloggc:/some-non-default-path/gc.log" in spec.jvm_opts
assert "-Xloggc:/default-path/gc.log" in spec.jvm_opts
assert spec.jvm_opts.index("-Xloggc:/some-non-default-path/gc.log") > \
spec.jvm_opts.index("-Xloggc:/default-path/gc.log")