aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/test/code_SUITE.erl
AgeCommit message (Collapse)Author
2019-05-19Extra -mode flags are ignored with a warningJose M Perez
Prior to this change, providing multiple -mode flags to erl would start the code server as 'interactive', regardless of their value ('-mode embedded -mode embedded' would start erl as in interactive mode). With this change, the extra -mode flags are ignored, and a warning gets logged.
2019-03-25Fix tests to work better in debug emulatorLukas Larsson
2019-03-19code_SUITE: Always disable tracing after 'upgrade' testJohn Högberg
Tracing would be left hanging if the test timed out, causing later tests to fail.
2019-03-18code_SUITE: Fix on_load_trace_on_load testJohn Högberg
Modules like 'merl' and 'erl_prettypr' could be loaded during the actual test, causing them to be traced too.
2018-11-16Merge branch 'henrik/kernel/bad_erl_libs'Henrik Nord
* henrik/kernel/bad_erl_libs: make sure a set ERL_LIBS does not interfere with tests
2018-10-15HiPE: Fix check for when ErLLVM is availableKostis Sagonas
The previous check whether ErLLVM could be enabled and/or tested simply checked whether a suitable version of the LLVM tool chain was present in the path. Obviously this is not enough: there should also be a check that we are running in an architecture on which the ErLLVM compiler has been ported. Fix the function that provides this functionality and also rename it in order to more appropriately describe what it does. In principle, this change introduces a backwards incompatibility as the function is one of those exported by the `hipe' module, but this function was not documented and the chances that it has been used somewhere else that the test suite are pretty low (if not zero).
2018-10-04make sure a set ERL_LIBS does not interfere with testsHenrik Nord
2018-06-18Update copyright yearHenrik Nord
2018-02-05kernel: Do not call erlang:get_stacktrace()Hans Bolinder
2017-10-03kernel: Cleanup trace_pattern after code_SUITE:upgradeSverker Eriksson
2017-09-13Merge branch 'sverker/19/on_load-on_load-bug/OTP-14612' into ↵Sverker Eriksson
sverker/on_load-on_load-bug/OTP-14612
2017-09-13code_SUITE:on_load_trace_on_loadSverker Eriksson
2017-05-24Stop the cover server after running code_SUITE:module_status/1Björn Gustavsson
Leaving the cover server running could cause problems in other test cases.
2017-05-12Don't crash in end_per_testcase/2 in code_SUITE:on_load_embedded/1Björn Gustavsson
2017-05-04Update copyright yearRaimo Niskanen
2017-04-07Merge branch 'bjorn/cuddle-with-tests'Björn Gustavsson
* bjorn/cuddle-with-tests: Ensure code_SUITE:on_load_embedded/1 does not leak links
2017-03-10Update copyright yearRickard Green
2017-03-08Remove typer applicationSiri Hansen
The application now has an own repo, https://github.com/erlang/typer
2017-03-01Ensure code_SUITE:on_load_embedded/1 does not leak linksBjörn Gustavsson
Make sure that the symlink created in the lib directory is deleted even if the test case fails.
2017-02-22Merge branch 'maint'Lukas Larsson
2017-02-20kernel: Fail sticky_dir tc if module not stickyLukas Larsson
Running this test when for some reason stdlib has been unstickied could cause the emulator to die. So we check first to make sure that the expected files are sticky.
2017-01-30Add new AtU8 beam chunkJosé Valim
The new chunk stores atoms encoded in UTF-8. beam_lib has also been modified to handle the new 'utf8_atoms' attribute while the 'atoms' attribute may be a missing chunk from now on. The binary_to_atom/2 BIF can now encode any utf8 binary with up to 255 characters. The list_to_atom/1 BIF can now accept codepoints higher than 255 with up to 255 characters (thanks to Björn Gustavsson).
2016-11-25Add code:module_status/1 and modified_modules/0Richard Carlsson
These functions use the MD5 beam/native checksum to determine whether the code for a module has changed on disk and is a candidate for loading.
2016-10-21kernel: Fix hipe compiler option to_llvmSverker Eriksson
2016-10-21kernel: Test hipe and hipe_llvm separateSverker Eriksson
in code_SUITE:upgrade. Combining both takes time.
2016-10-18kernel: Reduce test loggingSverker Eriksson
from code_SUITE:upgrade
2016-10-18hipe_llvm: Use different symbols for remote callsMagnus Lång
2016-10-14kernel: Fix code_SUITE:upgrade for non-hipeSverker Eriksson
2016-10-10erts: Improve hipe load/upgrade/purge machinerySverker Eriksson
A step toward better integration of hipe load and purge Highlights: * code_server no longer needs to call hipe_unified_loader:post_beam_load/1 Instead new internal function hipe_redirect_to_module() is called by loading BIFs to patch native call sites if needed. * hipe_purge_module() is called by erts_internal:purge_module/2 to purge any native code. * struct hipe_mfa_info redesigned and only used for exported functions that are called from or implemented by native code. A list of native call sites (struct hipe_ref) are kept for each hipe_mfa_info. * struct hipe_sdesc used by hipe_find_mfa_from_ra() to build native stack traces.
2016-09-14Don't leak old code when loading a modules with an on_load functionBjörn Gustavsson
Normally, calling code:delete/1 before re-loading the code for a module is unnecessary but causes no problem. But there will be be problems if the new code has an on_load function. Code with an on_load function will always be loaded as old code to allowed it to be easily purged if the on_load function would fail. If the on_load function succeeds, the old and current code will be swapped. So in the scenario where code:delete/1 has been called explicitly, there is old code but no current code. Loading code with an on_load function will cause the reference to the old code to be overwritten. That will at best cause a memory leak, and at worst an emulator crash (especially if NIFs are involved). To avoid that situation, we will put the code with the on_load function in a special, third slot in Module. ERL-240
2016-05-04Correctly handle multiple load attempts when on_load is pendingBjörn Gustavsson
If an on_load function had not yet returned, the code server would only correctly handle calls to code:ensure_loaded/1. That is, each process that called code:ensured_loaded/1 for the module in question would be suspended until the on_load function had returned. The code server handled calls to code:load_binary/1, code:load_file/1, and code:load_abs/1 in the same way as for code:ensure_loaded/1. That means that if call to one those functions attempted to load *different* code for the module, that code would not get loaded. Note that code:finish_loading/1 (code:atomic_load/1) will still return {error,pending_on_load} if there is a pending on_load function for one of the modules that are about to be loaded. The reason is that code:finish_loading/1 is meant to either succeed directly, or fail quickly if there is any problem.
2016-05-04Avoid deadlock when an on_load function makes an external call to the module ↵Björn Gustavsson
itself
2016-05-04Reimplement -on_load()Björn Gustavsson
Load the module as old code; swap old and new code if the -on_load function succeeds. That way, a failed update attempt for a module that has an -on_load function will preserve the previous version of the code.
2016-05-02code_SUITE: Make on_load_binary/1 clearer by using merlBjörn Gustavsson
2016-04-29code_SUITE: Enhance test of archive filesBjörn Gustavsson
When using a code archive for an application, it should be possible to store some directories for the application outside of the archive file (for example, shared libraries that will not work inside an archive). Make sure that we test that a directory outside of the archive file really works.
2016-04-13Merge branch 'henrik/update-copyrightyear'Henrik Nord
* henrik/update-copyrightyear: update copyright-year
2016-03-23code_SUITE: Skip on_load_embedded/1 if no symlinksBjörn Gustavsson
On Windows, we might not have permission to create symlinks. Skip the test case instead of failing.
2016-03-16code_server: Normalize the pathnames for all loaded modulesBjörn Gustavsson
On Windows, the pathnames for modules that are loaded early are returned with mixed backslashes and slashes: 1> code:which(lists). "C:\\Program Files\\erl8.0/lib/stdlib-2.7/ebin/lists.beam" 2> Modules loaded later are fully normalized. When starting the code_server, normalize the pathnames for all modules that have been loaded so far.
2016-03-15update copyright-yearHenrik Nord
2016-03-11Merge branch 'bjorn/kernel/modernize-tests'Björn Gustavsson
* bjorn/kernel/modernize-tests: Remove ?line macros Fix comments gen_tcp_misc_SUITE: Use unique node names Eliminate use of the ?t macro Eliminate use of doc and suite clauses Replace use of test_server:capture*/0 with ct:capture*/0 Eliminate use test_server:format() Eliminate use of test_server:sleep/1 Eliminate use of test_server:fail/0,1 Eliminate use of ?config() macro Modernize timetraps disk_log_SUITE: Remove vestiges of VxWorks support Conflicts: lib/kernel/test/code_SUITE.erl
2016-03-10Fix commentsBjörn Gustavsson
Remove out-commented code. Make sure that comments that are not at the end of a line starts with two '%' characters and not just one. That will become important later when we'll remove all ?line macros and ask Emacs to re-indent the files.
2016-03-10Merge branch 'maint'Siri Hansen
2016-03-10Eliminate use of the ?t macroBjörn Gustavsson
2016-03-10Eliminate use of doc and suite clausesBjörn Gustavsson
Those clause are obsolete and never used by common_test.
2016-03-10Replace use of test_server:capture*/0 with ct:capture*/0Björn Gustavsson
2016-03-10Eliminate use test_server:format()Björn Gustavsson
Replace with io:format/2 or ct:pal/3.
2016-03-09Eliminate use of test_server:fail/0,1Björn Gustavsson
2016-03-09Eliminate use of ?config() macroBjörn Gustavsson
?config is ugly and not recommended. Use proplists:get_value/2 instead.
2016-03-09Modernize timetrapsBjörn Gustavsson
2016-03-09Change '==' to '=' in code_SUITE:bad_erl_libsSiri Hansen
This bug was introduced by OTP-13388.