Bump reference platform to Ubuntu 18.04 LTS (#3037)
Ubuntu 14.04 reached its end of life on April 30m 2019. Let's bump the reference to the latest LTS, which is 18.04. Ubuntu 18.04 has newer Pylint and Cppcheck, the necessary fixes and suppresses are also included in this PR. JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác oszi@inf.u-szeged.hu
This commit is contained in:
committed by
GitHub
parent
c237ba6097
commit
1bd1a36a81
+5
-8
@@ -1,8 +1,8 @@
|
||||
language: c
|
||||
|
||||
# Default environment: Ubuntu Trusty 14.04.
|
||||
# Default environment: Ubuntu Bionic 18.04.
|
||||
os: linux
|
||||
dist: trusty
|
||||
dist: bionic
|
||||
|
||||
# Default job task: run tests as defined in the $OPT environment variable.
|
||||
# Jobs can redefine the 'script' stage in the matrix below.
|
||||
@@ -12,13 +12,12 @@ script: tools/run-tests.py $OPTS
|
||||
matrix:
|
||||
include:
|
||||
- name: "Checks"
|
||||
install: pip install --user pylint==1.6.5
|
||||
script:
|
||||
- tools/run-tests.py --check-signed-off=travis --check-doxygen --check-vera --check-license --check-magic-strings --check-pylint
|
||||
- travis_wait 40 tools/run-tests.py --check-cppcheck
|
||||
addons:
|
||||
apt:
|
||||
packages: [doxygen, cppcheck, vera++]
|
||||
packages: [doxygen, cppcheck, vera++, pylint]
|
||||
|
||||
- name: "Linux/x86-64 Build, Correctness & Debugger Tests"
|
||||
env:
|
||||
@@ -70,22 +69,20 @@ matrix:
|
||||
- OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js,parser-oom2.js,stack-limit.js,regression-test-issue-2190.js,regression-test-issue-2258-2963.js,regression-test-issue-2448.js,regression-test-issue-2905.js --buildoptions=--stack-limit=0,--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold"
|
||||
- ASAN_OPTIONS=detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true
|
||||
- TIMEOUT=600
|
||||
compiler: gcc-5
|
||||
addons:
|
||||
apt:
|
||||
sources: ubuntu-toolchain-r-test
|
||||
packages: [gcc-5, gcc-5-multilib]
|
||||
packages: [gcc-multilib]
|
||||
|
||||
- name: "UBSAN Tests"
|
||||
env:
|
||||
- OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js,parser-oom2.js --buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold"
|
||||
- UBSAN_OPTIONS=print_stacktrace=1
|
||||
- TIMEOUT=600
|
||||
compiler: gcc-5
|
||||
addons:
|
||||
apt:
|
||||
sources: ubuntu-toolchain-r-test
|
||||
packages: [gcc-5, gcc-5-multilib]
|
||||
packages: [gcc-multilib]
|
||||
|
||||
- name: "Coverity Scan & SonarQube"
|
||||
env:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Setting up prerequisites
|
||||
|
||||
Currently, only Ubuntu 14.04+ is officially supported as primary development environment.
|
||||
Currently, only Ubuntu 18.04+ is officially supported as primary development environment.
|
||||
|
||||
There are several dependencies, that should be installed manually. The following list is the absolute minimum for building:
|
||||
|
||||
|
||||
@@ -697,7 +697,7 @@ ecma_number_parse_int (const lit_utf8_byte_t *string_buff, /**< routine's first
|
||||
* string buffer's size */
|
||||
ecma_value_t radix) /**< routine's second argument */
|
||||
{
|
||||
if (string_buff_size <= 0)
|
||||
if (string_buff_size == 0)
|
||||
{
|
||||
return ecma_make_nan_value ();
|
||||
}
|
||||
@@ -874,7 +874,7 @@ ecma_number_parse_float (const lit_utf8_byte_t *string_buff, /**< routine's firs
|
||||
lit_utf8_size_t string_buff_size) /**< routine's first argument's
|
||||
* string buffer's size */
|
||||
{
|
||||
if (string_buff_size <= 0)
|
||||
if (string_buff_size == 0)
|
||||
{
|
||||
return ecma_make_nan_value ();
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ JERRY_STATIC_ASSERT (sizeof (jmem_cpointer_t) <= sizeof (jmem_cpointer_tag_t),
|
||||
|
||||
#ifdef ECMA_VALUE_CAN_STORE_UINTPTR_VALUE_DIRECTLY
|
||||
|
||||
/* cppcheck-suppress zerodiv */
|
||||
JERRY_STATIC_ASSERT (sizeof (uintptr_t) <= sizeof (ecma_value_t),
|
||||
uintptr_t_must_fit_in_ecma_value_t);
|
||||
|
||||
|
||||
@@ -349,6 +349,7 @@ ecma_instantiate_builtin (ecma_builtin_id_t obj_builtin_id) /**< built-in id */
|
||||
|
||||
ecma_object_t *prototype_obj_p;
|
||||
|
||||
/* cppcheck-suppress arrayIndexOutOfBoundsCond */
|
||||
if (JERRY_UNLIKELY (object_prototype_builtin_id == ECMA_BUILTIN_ID__COUNT))
|
||||
{
|
||||
prototype_obj_p = NULL;
|
||||
|
||||
@@ -1296,7 +1296,9 @@ ecma_op_lazy_instantiate_prototype_object (ecma_object_t *object_p) /**< the fun
|
||||
}
|
||||
#endif /* ENABLED (JERRY_ES2015) */
|
||||
|
||||
#if ENABLED (JERRY_ES2015)
|
||||
if (proto_object_p == NULL)
|
||||
#endif /* ENABLED (JERRY_ES2015) */
|
||||
{
|
||||
proto_object_p = ecma_op_create_object_object_noarg ();
|
||||
}
|
||||
|
||||
@@ -288,6 +288,7 @@ jmem_heap_gc_and_alloc_block (const size_t size, /**< required memory size */
|
||||
|
||||
void *data_space_p = jmem_heap_alloc (size);
|
||||
|
||||
/* cppcheck-suppress memleak */
|
||||
while (JERRY_UNLIKELY (data_space_p == NULL) && JERRY_LIKELY (pressure < max_pressure))
|
||||
{
|
||||
pressure++;
|
||||
|
||||
@@ -252,7 +252,7 @@ def src_check_args(args):
|
||||
print("Error: Non-negative integer number expected: %s" % (val_errno))
|
||||
return -1
|
||||
|
||||
# pylint: disable=too-many-branches,too-many-locals,too-many-statements,redefined-variable-type
|
||||
# pylint: disable=too-many-branches,too-many-locals,too-many-statements
|
||||
def main():
|
||||
args = jerry_client_main.arguments_parse()
|
||||
|
||||
|
||||
@@ -267,7 +267,7 @@ class DebuggerAction(object):
|
||||
|
||||
|
||||
class JerryDebugger(object):
|
||||
# pylint: disable=too-many-instance-attributes,too-many-statements,too-many-public-methods,no-self-use,redefined-variable-type
|
||||
# pylint: disable=too-many-instance-attributes,too-many-statements,too-many-public-methods,no-self-use
|
||||
def __init__(self, channel):
|
||||
self.prompt = False
|
||||
self.function_list = {}
|
||||
@@ -490,7 +490,7 @@ class JerryDebugger(object):
|
||||
index = int(args)
|
||||
if index < 0:
|
||||
print ("Error: A non negative integer number expected")
|
||||
return
|
||||
return ""
|
||||
|
||||
except ValueError as val_errno:
|
||||
return "Error: Non negative integer number expected, %s\n" % (val_errno)
|
||||
|
||||
@@ -63,7 +63,13 @@ jerryx_set_properties (const jerry_value_t target_object, /**< target object */
|
||||
{
|
||||
#define JERRYX_SET_PROPERTIES_RESULT(VALUE, IDX) ((jerryx_register_result) { VALUE, IDX })
|
||||
uint32_t idx = 0;
|
||||
for (; ((entries + idx) != NULL) && (entries[idx].name != NULL); idx++)
|
||||
|
||||
if (entries == NULL)
|
||||
{
|
||||
return JERRYX_SET_PROPERTIES_RESULT (jerry_create_undefined (), 0);
|
||||
}
|
||||
|
||||
for (; (entries[idx].name != NULL); idx++)
|
||||
{
|
||||
const jerryx_property_entry *entry = &entries[idx];
|
||||
|
||||
@@ -99,9 +105,12 @@ void
|
||||
jerryx_release_property_entry (const jerryx_property_entry entries[], /**< list of property entries */
|
||||
const jerryx_register_result register_result) /**< previous result of registration */
|
||||
{
|
||||
for (uint32_t idx = register_result.registered;
|
||||
((entries + idx) != NULL) && (entries[idx].name != NULL);
|
||||
idx++)
|
||||
if (entries == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (uint32_t idx = register_result.registered; entries[idx].name != NULL; idx++)
|
||||
{
|
||||
jerry_release_value (entries[idx].value);
|
||||
}
|
||||
|
||||
+1
-1
@@ -88,7 +88,7 @@ acos (double x)
|
||||
return pi + 2.0 * pio2_lo;
|
||||
}
|
||||
}
|
||||
return (x - x) / (x - x); /* acos(|x|>1) is NaN */
|
||||
return NAN; /* acos(|x|>1) is NaN */
|
||||
}
|
||||
if (ix < 0x3fe00000) /* |x| < 0.5 */
|
||||
{
|
||||
|
||||
+1
-1
@@ -89,7 +89,7 @@ asin (double x)
|
||||
{
|
||||
return x * pio2_hi + x * pio2_lo;
|
||||
}
|
||||
return (x - x) / (x - x); /* asin(|x|>1) is NaN */
|
||||
return NAN; /* asin(|x|>1) is NaN */
|
||||
}
|
||||
else if (ix < 0x3fe00000) /* |x| < 0.5 */
|
||||
{
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ atan2 (double y, double x)
|
||||
{
|
||||
return atan (y);
|
||||
}
|
||||
m = ((hy >> 31) & 1) | ((hx >> 30) & 2); /* 2 * sign(x) + sign(y) */
|
||||
m = ((hy < 0) ? 1 : 0) + ((hx < 0) ? 2 : 0); /* 2 * sign(x) + sign(y) */
|
||||
|
||||
/* when y = 0 */
|
||||
if ((iy | ly) == 0)
|
||||
|
||||
+1
-1
@@ -197,7 +197,7 @@ exp (double x) /* default IEEE double exp */
|
||||
}
|
||||
if (k >= -1021)
|
||||
{
|
||||
ret.as_int.hi += (k << 20); /* add k to y's exponent */
|
||||
ret.as_int.hi += (((unsigned int) k) << 20); /* add k to y's exponent */
|
||||
return ret.dbl;
|
||||
}
|
||||
else
|
||||
|
||||
+3
-3
@@ -53,7 +53,7 @@ fmod (double x, double y)
|
||||
if ((hy | ly) == 0 || (hx >= 0x7ff00000) || /* y = 0, or x not finite */
|
||||
((hy | ((ly | -ly) >> 31)) > 0x7ff00000)) /* or y is NaN */
|
||||
{
|
||||
return (x * y) / (x * y);
|
||||
return NAN;
|
||||
}
|
||||
if (hx <= hy)
|
||||
{
|
||||
@@ -123,7 +123,7 @@ fmod (double x, double y)
|
||||
n = -1022 - ix;
|
||||
if (n <= 31)
|
||||
{
|
||||
hx = (hx << n) | (lx >> (32 - n));
|
||||
hx = (((unsigned int) hx) << n) | (lx >> (32 - n));
|
||||
lx <<= n;
|
||||
}
|
||||
else
|
||||
@@ -141,7 +141,7 @@ fmod (double x, double y)
|
||||
n = -1022 - iy;
|
||||
if (n <= 31)
|
||||
{
|
||||
hy = (hy << n) | (ly >> (32 - n));
|
||||
hy = (((unsigned int) hy) << n) | (ly >> (32 - n));
|
||||
ly <<= n;
|
||||
}
|
||||
else
|
||||
|
||||
+2
-2
@@ -254,12 +254,12 @@ pow (double x, double y)
|
||||
}
|
||||
}
|
||||
|
||||
n = (hx >> 31) + 1;
|
||||
n = (hx < 0) ? 0 : 1;
|
||||
|
||||
/* (x<0)**(non-int) is NaN */
|
||||
if ((n | yisint) == 0)
|
||||
{
|
||||
return (x - x) / (x - x);
|
||||
return NAN;
|
||||
}
|
||||
|
||||
s = one; /* s (sign of result -ve**odd) = -1 else = 1 */
|
||||
|
||||
+1
-1
@@ -125,7 +125,7 @@ sqrt (double x)
|
||||
}
|
||||
else if (ix0 < 0) /* sqrt(-ve) = sNaN */
|
||||
{
|
||||
return (x - x) / (x - x);
|
||||
return NAN;
|
||||
}
|
||||
}
|
||||
/* normalize x */
|
||||
|
||||
+1
-1
@@ -112,7 +112,7 @@ cli_consume_option (cli_state_t *state_p) /**< state of the command line option
|
||||
|
||||
state_p->arg = arg;
|
||||
|
||||
if (arg[0] != '-' || (arg[0] == '-' && arg[1] == '\0'))
|
||||
if (arg[0] != '-' || arg[1] == '\0')
|
||||
{
|
||||
return CLI_OPT_DEFAULT;
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ read_file (uint8_t *input_pos_p, /**< next position in the input buffer */
|
||||
return 0;
|
||||
}
|
||||
|
||||
printf ("Input file '%s' (%lu bytes) loaded.\n", file_name, bytes_read);
|
||||
printf ("Input file '%s' (%zu bytes) loaded.\n", file_name, bytes_read);
|
||||
return bytes_read;
|
||||
} /* read_file */
|
||||
|
||||
@@ -426,7 +426,7 @@ process_generate (cli_state_t *cli_state_p, /**< cli state */
|
||||
fwrite (output_buffer, sizeof (uint8_t), snapshot_size, snapshot_file_p);
|
||||
fclose (snapshot_file_p);
|
||||
|
||||
printf ("Created snapshot file: '%s' (%lu bytes)\n", output_file_name_p, (unsigned long) snapshot_size);
|
||||
printf ("Created snapshot file: '%s' (%zu bytes)\n", output_file_name_p, snapshot_size);
|
||||
|
||||
jerry_cleanup ();
|
||||
return JERRY_STANDALONE_EXIT_CODE_OK;
|
||||
@@ -584,7 +584,7 @@ process_literal_dump (cli_state_t *cli_state_p, /**< cli state */
|
||||
return JERRY_STANDALONE_EXIT_CODE_FAIL;
|
||||
}
|
||||
|
||||
printf ("Successfully merged the input snapshots (%lu bytes).\n", merged_snapshot_size);
|
||||
printf ("Successfully merged the input snapshots (%zu bytes).\n", merged_snapshot_size);
|
||||
|
||||
lit_buf_sz = jerry_get_literals_from_snapshot (output_buffer,
|
||||
merged_snapshot_size,
|
||||
@@ -618,7 +618,7 @@ process_literal_dump (cli_state_t *cli_state_p, /**< cli state */
|
||||
fwrite (literal_buffer, sizeof (uint8_t), lit_buf_sz, file_p);
|
||||
fclose (file_p);
|
||||
|
||||
printf ("Literals are saved into '%s' (%lu bytes).\n", literals_file_name_p, lit_buf_sz);
|
||||
printf ("Literals are saved into '%s' (%zu bytes).\n", literals_file_name_p, lit_buf_sz);
|
||||
|
||||
jerry_cleanup ();
|
||||
return JERRY_STANDALONE_EXIT_CODE_OK;
|
||||
@@ -752,7 +752,7 @@ process_merge (cli_state_t *cli_state_p, /**< cli state */
|
||||
fwrite (output_buffer, 1u, merged_snapshot_size, file_p);
|
||||
fclose (file_p);
|
||||
|
||||
printf ("Merge is completed. Merged snapshot is saved into '%s' (%lu bytes).\n",
|
||||
printf ("Merge is completed. Merged snapshot is saved into '%s' (%zu bytes).\n",
|
||||
output_file_name_p,
|
||||
merged_snapshot_size);
|
||||
|
||||
|
||||
@@ -53,6 +53,12 @@ static const uint32_t *
|
||||
read_file (const char *file_name,
|
||||
size_t *out_size_p)
|
||||
{
|
||||
if (file_name == NULL)
|
||||
{
|
||||
jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Error: failed to open file, missing filename\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
FILE *file;
|
||||
if (!strcmp ("-", file_name))
|
||||
{
|
||||
|
||||
@@ -304,6 +304,7 @@ main (void)
|
||||
/* Test ArrayBuffer external memory map/unmap */
|
||||
{
|
||||
const uint32_t buffer_size = 20;
|
||||
/* cppcheck-suppress variableScope */
|
||||
JERRY_VLA (uint8_t, buffer_p, buffer_size);
|
||||
{
|
||||
jerry_value_t input_buffer = jerry_create_arraybuffer_external (buffer_size, buffer_p, NULL);
|
||||
|
||||
@@ -155,7 +155,7 @@ test_typedarray_queries (test_entry_t test_entries[]) /**< test cases */
|
||||
*/
|
||||
static
|
||||
void test_buffer_value (uint64_t value, /**< value to test for */
|
||||
const uint8_t *buffer, /**< buffer to read value from */
|
||||
const void *buffer, /**< buffer to read value from */
|
||||
uint32_t start_offset, /**< start offset of the value */
|
||||
jerry_typedarray_type_t typedarray_type, /**< type of TypedArray */
|
||||
uint32_t bytes_per_element) /**< bytes per element for the given type */
|
||||
@@ -518,11 +518,11 @@ main (void)
|
||||
/* Test TypedArray operations in js */
|
||||
{
|
||||
const uint32_t element_count = 14;
|
||||
uint8_t expected_value = 42;
|
||||
|
||||
jerry_value_t array = jerry_create_typedarray (JERRY_TYPEDARRAY_UINT8, element_count);
|
||||
|
||||
{
|
||||
uint8_t expected_value = 42;
|
||||
JERRY_VLA (uint8_t, expected_data, element_count);
|
||||
memset (expected_data, expected_value, element_count);
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ cppcheck -j$CPPCHECK_JOBS --force \
|
||||
--enable=warning,style,performance,portability,information \
|
||||
--template="{file}:{line}: {severity}({id}): {message}" \
|
||||
--error-exitcode=1 \
|
||||
--inline-suppr \
|
||||
--exitcode-suppressions=tools/cppcheck/suppressions-list \
|
||||
--suppressions-list=tools/cppcheck/suppressions-list \
|
||||
"${INCLUDE_DIRS[@]}" \
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
wrongmathcall:tests/unit-libm/test-libm.inc.h
|
||||
variableScope:jerry-libm/*.c
|
||||
invalidPointerCast:jerry-libm/*.c
|
||||
commaSeparatedReturn:*
|
||||
|
||||
ConfigurationNotChecked:jerry-core/ecma/builtin-objects/ecma-builtin-global.inc.h
|
||||
ConfigurationNotChecked:jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-defines.inc.h
|
||||
ConfigurationNotChecked:jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.inc.h
|
||||
ConfigurationNotChecked:jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h
|
||||
ConfigurationNotChecked:jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-undefs.inc.h
|
||||
|
||||
+1
-1
@@ -301,7 +301,7 @@ def hash_binary(bin_path):
|
||||
hasher = hashlib.sha1()
|
||||
with open(bin_path, 'rb') as bin_file:
|
||||
buf = bin_file.read(blocksize)
|
||||
while len(buf) > 0:
|
||||
while buf:
|
||||
hasher.update(buf)
|
||||
buf = bin_file.read(blocksize)
|
||||
return hasher.hexdigest()
|
||||
|
||||
Reference in New Issue
Block a user