aboutsummaryrefslogtreecommitdiffstats
path: root/lib/reltool/test/reltool_server_SUITE.erl
AgeCommit message (Collapse)Author
2014-12-29Merge branch 'lemenkov/use_os_getenv_2'Marcus Arendt
* lemenkov/use_os_getenv_2: fix missing include Start using os:getenv/2 fun Introduce os:getenv/2
2014-12-15Start using os:getenv/2 funPeter Lemenkov
See #535 Signed-off-by: Peter Lemenkov <[email protected]>
2014-06-18[reltool] Back out adaption to better quoting on windowsSiri Hansen
This commit only changes the test. It reverts commit 710a1fa ([reltool] Adapt tests to better quoting of paths on windows) because the commit that actually changed the quoting behaviour on windows was moved from the maint branch to master (9633e0e win32: Fix quoting of paths).
2014-04-14[reltool] Adapt tests to better quoting of paths on windowsSiri Hansen
2014-01-10Add missing default value for regexps in reltoolHåkan Mattsson
It caused a function clause in lists:sort/1: reltool_server_SUITE.erl(2512): <ERROR> Not matching actual result was: {error, {function_clause, [{lists,sort, [[{regexp,"^priv", {re_pattern,0,1, <<69,82,67,80,64,0,0,0,16,8,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,93,0,12,25,27,112,27,114,27,105,27,118,84, 0,12,0>>}}| undefined]], [{file,"lists.erl"},{line,465}]}, {reltool_server,decode,2,[{file,"reltool_server.erl"},{line,1499}]}, {reltool_server,decode,2,[{file,"reltool_server.erl"},{line,1363}]}, {reltool_server,read_config,2, [{file,"reltool_server.erl"},{line,1335}]}, {reltool_server,parse_options,4, [{file,"reltool_server.erl"},{line,224}]}, {reltool_server,do_init,1,[{file,"reltool_server.erl"},{line,154}]}, {reltool_server,init,1,[{file,"reltool_server.erl"},{line,133}]}, {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}} Expected { ok , _ }
2013-05-14[reltool] Use unicode characters in work dir for unicode testSiri Hansen
2013-04-19Remove the "coding: utf-8" comment from all Erlang source filesHans Bolinder
2013-04-19[reltool] Remove erlang:port_close/1 for node portSiri Hansen
Test nodes are started with erlang:open_port/2, using the -detached option to erl. -detached causes the port returned from open_port/2 to be closed automatically. Some test cases failed occasionally with a badarg when attempting to close the port with erlang:port_close/1. To avoid this the call to port_close/1 is now removed.
2013-04-08Merge branch 'siri/cuddle-with-tests' into maintSiri Hansen
* siri/cuddle-with-tests: [reltool] Clean up work dir after test [observer] Add debug printouts in ttb_SUITE
2013-03-27[reltool] Clean up work dir after testSiri Hansen
This is to save space in daily tests. Result of failed test cases are still saved.
2013-03-27[reltool] Add test case for missing applicationSiri Hansen
2013-03-27[reltool] Relax requirements on excluded applicationsHåkan Mattsson
A missing application directory is now classified as a warning if the application is explicitly excluded.
2013-02-21[reltool] Improve stability of testsSiri Hansen
* Make sure test node is terminated between each test * Wait for expected applications to be started before continuing test * Use ping instead of nodedown messages to check that node is down (to avoid failure due to no flush of inbox)
2013-02-21[reltool] Make escript test work with hipe and smpSiri Hansen
reltool_server_SUITE:create_standalone and create_multiple_standalone failed on test hosts running hipe and smp. The reason was that the escript used in these tests explicitly disabled smp, which in turn made the emulator spit out warnings like this: "<HiPE (v 3.10)> Warning: not loading native code for module beam_lib: it was compiled for an incompatible runtime system; please regenerate native code for this runtime system" This was returned from the escript and did not match the expected result. To overcome this, the escript (reltool/examples/display_args) is changed and does no longer disable smp.
2013-02-21[reltool] Add unicode testSiri Hansen
2012-09-24[reltool] Use spawn_executable instead of spawn when starting nodes in testSiri Hansen
In order to handle paths with space, spawn_executable is now used instead of spawn when starting nodes with open_port/2 in reltool_server_SUITE.
2012-09-21[reltool] Use application name from .app file instead of directory nameSiri Hansen
In the first traversal of library directories, reltool used only the directory names in order to figure out application names. This would succeed if the directory name was AppName only or AppName-AppVsn and AppVsn consisted of integers separated by dots only. If the AppVsn has any other format, then reltool would not find the correct application name. With this commit, reltool will first look for a .app file and use the .app file name as the application name. This will allow different formats of the version identifier in the directory name. Note that reltool can still not sort (and select the latest) amongst version identifiers of other format than integers separated by dots.
2012-09-17[reltool] Keep order from rel spec when sorting used and included applicationsSiri Hansen
The rel specification now dictates the order in which included and used applications are loaded/started by the boot file. If the applications are not specified in the rel spec, then the order from the .app file is used. This was a bug earlier reported on systools, and is now also implemented in reltool. Example: If a .app file specified {applications,[x,y]} {included_applications,[b,c]} And the reltool.config has {rel, "myrel", "1.0", [a,y,x,c,b]} Then the boot file will load/start y before x and c before b. Earlier x would always be started before y and b always before c due to the order in the .app file.
2012-09-14[reltool] Automatically add included applications in rel fileSiri Hansen
If a 'rel' spec in the reltool config does not contain all applications that are listed as {applications,Applications} in a .app file, then these applications are autmatically added when creating the .rel file. For 'included_applications', the behaviour was not the same. I.e. if a 'rel' spec in the reltool config did not contain all applications that are listed as {included_applications,InclApplications} in a .app file, then reltool would fail with reason "Undefined applications" when creating the .rel file. This has been corrected, so both 'applications' and 'included_applications' are now automatically added if not already in the 'rel' spec. I.e. for an application 'z', if z.app contains {applications,[stdlib,kernel,x]} {included_applications,[y]} then reltool configuration {rel, "myrel", "1.0", [z]} will cause the same .rel file as {rel, "myrel", "1.0", [stdlib,kernel,x,y,z]}
2012-09-12[reltool] Make reltool:install/2 work on windowsSiri Hansen
The erl.ini file generated by reltool:install/2 faulty pointed out $ROOT/bin as Bindir. This is now changed to $ROOT/erts-Vsn/bin. Also, backslashes in erl.ini needed to be escaped.
2012-09-11[reltool] Allow incl_cond=derived on module levelSiri Hansen
According to documentation it should be allowed to set incl_cond=include|exclude|derived, but if set to derived on module level, reltool_server would crash. This has been corrected.
2012-08-20[reltool] Add option {excl_lib,otp_root}Siri Hansen
With this option reltool will create a target structure with only the applications found in specified 'lib_dirs' (on system level) or 'lib_dir' (on app level). Erts will not be included, and no applications found under $OTP_ROOT/lib.
2012-03-22[reltool] Allow lib_dir on app level to use relative pathSiri Hansen
This commit adds a normalization of the directory given with the lib_dir parameter on application level. This will covert the path to absolute, remove trailing slash and any occurrencies of "xxx/..".
2012-03-22[reltool] Add configuration parameter lib_dir on application levelSiri Hansen
As a way of specifying one specific version of an application, the following configuration parameter is added on application level: {lib_dir,Dir}, Dir = string() This can be useful if the parent directory of the application directory is not suitable to use as a lib dir on system level.
2012-03-19[reltool] Remove skip statement for test that failed due to stdlib errorSiri Hansen
The stdlib error has been corrected in a previous commit so the failing test (reltool_server_SUITE:create_script_sort) can be un-skipped.
2012-03-19[reltool] Fix problems with sorting of applicationsSiri Hansen
OTP-9792 The following problems have been solved: * reltool_target:do_merge_apps - in recursive calls to this function, the accumulator was reverted each time causing the order of applications listed after kernel and stdlib in the rel specification in the configuration to sometimes be messed up. * There are several ways to specify wich applications to include in an application: 1) in the .app file for the including applications 2a) in the .rel file, when listing applications 2b) in the rel specification in the reltool configuration 2a (systools) and 2b (reltool) should have the same effect and overwrite 1. According to the documentation of systools (sasl), the default value in 2a is an empty list. This should mean that if included applications are not mentioned in the .rel file, then any included application listed in the .app file will be disregarded. This is NOT the way systools actually works. The implementation sets the default for the .rel file to the same list as in the .app file. Reltool earlier implemented 2b as described in the systools documentation. However, after some discussion we decided to change this so that reltool handles 2b in the same way as systools handles 2a since this seems more intuitive. The sasl documentation will be altered accordingly (internal ref OTP-9980). * If the rel specification in the reltool configuration explicitly specified included applications to be an empty list, and the .app file had a non-empty list, then the empty list from the rel specification was discarded. This has been corrected so the rel specification now, if set, always overwrites the value of included_applications in the .app file. * reltool would earlier add load instructions in the script/boot files for ALL modules in the ebin directory of an application even if mod_cond was set to app (include only modules listed in the .app file). This has been corrected - now only modules with #mod.is_included==true are loaded. * reltool would earlier add start instructions in the script/boot file for included applications. This has been corrected - included applications shall only be loaded since the including application is responsible for starting them.
2012-03-19[reltool] Just warn if same module occurs twice in .app fileSiri Hansen
OTP-9792 Earlier this would cause an error with reason "Module xxx potentially included by two different applications: yyy and yyy." This is now changed so it will only be a warning saying that the module is duplicated in the .app file.
2012-03-19[reltool] Cleanup test codeSiri Hansen
OTP-9794 Remove some unused code from reltool test.
2012-03-19[reltool] Unset ERL_FLAGS when running escript from reltool_server_SUITESiri Hansen
OTP-9794 Some escript tests in reltool_server_SUITE failed if ERL_FLAGS was set to enable smp. The reason is that the test expected smp_support to be false, since the argument "-smp disable" is stated in the %%!-line of the escript. However, ERL_FLAGS will override the arguments in the escript so the result could not be truested.
2012-03-19[reltool] Improve error handlingSiri Hansen
OTP-9794 Stopping configuration (throw/catch) at first error instead of continuing through all steps and then returning the error at the end. Start of reltool_server will no longer succeed if the configuration causes an error. reltool:get_status can only return {error,Reason} in the case where the reltool_server has terminated. In all other cases it will return {ok,Warnings}. Bug fix in this commit: * warnings are no longer duplicated in pop-up or return from reltool_server
2012-03-19[reltool] Fix rollback and undoSiri Hansen
OTP-9794 Backup old configuration before starting re-configuration so rollback is possible if configuration fails. Store last configuration including derivates so undo does no longer need to refresh and analyse everything from disk.
2012-03-19[reltool] Link together escript with inlined applicationSiri Hansen
OTP-9968 Make sure that inlined applications in an escript is included/excluded as the escript itself, and forbid explicit configuration of the inlined application.
2012-03-19[reltool] Update state and tables consistently for all types of config changesSiri Hansen
OTP-9794 OTP-9968 The main idea behind the data structure in reltool_server is that the state shall reflect what is explicitly configured, and the tables shall contain this configuration plus everything that is derived. In some cases, however, this was not the complete truth: * the application table was never read * the module table was never updated on undo * the state contained a lot more than what was explicitly configured This commit re-writes major parts of the reltool_server for the sake of unifying the way the state and tables are updated: * The list of applications in the state now only contains those applications and modules for which there are explicit settings in the configuration (given at startup or changed from the GUI) * When changing any bit of the configuration, the tables are always emptied and every part is derived again from the configuration found in the state * All configuration changes now cause a re-read of the file system, meaning that if something has changed in the file system it will be reflected in the result of the configuration change. This is the case even if no file system related configuration is changed (e.g. root dir or lib dirs) (*POSSIBLE INCOMPATIBILITY*) * Requests for applications and modules from the GUI now always read the tables, not the state * When loading a new configuration file via the GUI, the old configuration is completly scratched, and only the new is valid (*POSSIBLE INCOMPATIBILITY*) * The handling of escripts which include archives of applications is changed to always produce one #app record for the escript in addition to one for each inlined application. All modules are listed as parts of the inlined application where it belongs and not as part of the escript's #app record. This is a temporary solution which will be modified and improved. The following bugs are corrected by this commit: * Loading a config which contains an escript via the GUI menu did not produce the same #app record as when loading the same configuration at reltool start. Paths, version and label could differ. * Loading config with same escript (source) twice caused reltool to add same module twice in #app.mods * Loading config with same escript (inlined beam) twice caused reltool to fail saying module is included by two different applications * Loading config which in addition to an existing escript also adds another escript for which the name sorts before the existing one would cause reltool to fail saying "Application name clash"
2012-03-19[reltool] Add test cases for handling of escriptsSiri Hansen
OTP-9794 OTP-9968 The following test cases are added: * create_standalone_beam * create_standalone_app * create_multiple_standalone * load_config_escript_path * load_config_same_escript_source * load_config_same_escript_beam * load_config_add_escript Most of them are temporarily skipped since they re-produce known problems that will be corrected in a later commit.
2012-03-19[reltool] Add tests for sorting of applications in .rel and .script filesSiri Hansen
OTP-9794 Test cases create_release_sort and create_script_sort are added. The test are temporarily skipped since they detected quite a few bugs that will be corrected with OTP-9792. The following bug is corrected in this commit:' reltool_server did not recognize {App,InclApps} inside a 'rel' specification in the reltool config, e.g. {rel, "myrel", "1.0", [{myapp,[app2]}]}.
2012-03-19[reltool] Add more testsSiri Hansen
OTP-9794 Test cases are added for the following functions: * reltool_server:get_sys * reltool_server:set_sys * reltool_server:get_status * reltool_server:gen_rel_files * reltool:eval_target_spec * reltool:get_server
2012-03-19[reltool] Add test case for reltool_server:get_modSiri Hansen
OTP-9794 This test case revealed a bug that occurs when calling reltool_server:get_mod after reltool_server:undo_config. get_mod reads from the module table (ets) and not from the reltool_server state, while undo_config only changes the state. This bug has been corrected, so undo_config now updates both state and tables (it does the same as set_sys).
2012-03-19[reltool] Ensure that tests do not try to start node if target was not createdSiri Hansen
OTP-9794 Some test cases in reltool_server_SUITE tried to create a target system and then start a node running this system. If creation of the target system failed, an attempt would still be made to start the node. This has been corrected so the test is immediately terminated if the target system could not be created.
2012-03-19[reltool] Add test of dependencies derived through calls to external appsSiri Hansen
OTP-9794 This is a test of the mechanism with which reltool_server decides which applications to include and not, based on function calls between applications. This is also the mechanism which forms the base for the application- and module dependency graphs.
2012-03-19[reltool] Add more test cases and fix bugsSiri Hansen
OTP-9794 The following test cases are added for the inteface from GUI to reltool_server: * get_config * get_apps * set_app_and_undo * set_apps_and_undo * load_config_and_undo * reset_config_and_undo * save_config The following bugs were found and corrected: * If set_apps failed, then the state of reltool_server would not be reset to how it was before the failing operation - and every operation done afterwards would also (seem to) fail. * undo_config did not work after reset_config - since faulty #sys record was stored as old_sys. * undo_config did not work after set_app (used when changing the content of an application from the GUI) - since old_sys was not set. Also old_status was not set causing possible warnings to disappear. * undo_config did not work after set_apps (used e.g. when excluding or including an application from the GUI) - since old_sys was not set. Also old_status was not set causing possible warnings to disappear.
2011-05-17Allow same module name in multiple applications if explicitely excludedSiri Hansen
Earlier, reltool expected all module names detected under the lib directories to have unique names. If this was not the case, the result was undefined - i.e. the beam file of the duplicated module might be included in multiple applications in the target area, or it might even be excluded from all applications. This commit adds awareness in reltool that a module might occur in multiple applications, and it is allowed as long as the module or it's application is explicitely excluded in all but one of the containing applications.
2011-03-21Allow app_file option to be keep | strip | all, as documentedSiri Hansen
This is the correction of the bug not allowing the values 'strip' or 'all' for the app_file option in reltool.
2011-03-11Update copyright yearsBjörn-Egil Dahlberg
2011-02-17Rename Suite Callback to Common Test HookLukas Larsson
2011-02-17Fix formatting for reltoolLukas Larsson
2011-02-17Add ts_install_scb to suite/0Lukas Larsson
2011-02-17Update reltool tests to conform with common_test standardLukas Larsson
2011-02-17Remove extra end_per_testcaseLukas Larsson
2011-02-17Update all fin_per_testcase to end_per_testcase.Lukas Larsson
2011-02-17Update tests to work with ts -> ct migrations script.Lukas Larsson