Standard Library: Unterschied zwischen den Versionen

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen
(31 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Disclaimer ==

The deployed expecco libraries are constantly improved and new actions are added with every release. Therefore, the following list covers only a small subset of the available functions and is no longer maintained. Please take a look at the actual standard library in your expecco IDE.

== Introduction ==
== Introduction ==
The StandardLibrary contains general domain-independent function blocks. These are useful for any kind of test-development.
The StandardLibrary contains general domain-independent function blocks. These are useful for any kind of test-development.


One of the features which make the StandardLibrary very flexible is the dynamic type system of the underlying implementation language. This allows for the blocks to handle a wide range of possible input values. For example, arithmetic blocks ("Arith [ * ]") all allow for Integers, Floats, LargeIntegers, Fractions, FixedPoint-Decimals and Measurement Values to be used as input (where appropriate). And most of the collection blocks ("Collection [ * ]") can deal with Strings, ByteArrays, Buffer-Data, Arrays, OrderedCollections, Tuples, SortedCollections, Sets, HashTables (Dictionaries) and other collection types. Without such a dynamic type system, many more blocks would be needed for a comparable set of functions (see IEC1131, for example, which uses a similar execution model, but a static type system).
One of the features which make the StandardLibrary very flexible is the dynamic type system of the underlying implementation language. This allows for action blocks to handle a wide range of possible input values. For example, arithmetic blocks ("Arith [ * ]") all allow for Integers, Floats, LargeIntegers, Fractions, FixedPoint-Decimals and Measurement Values to be used as input (where appropriate). And most of the collection blocks ("Collection [ * ]") can deal with Strings, ByteArrays, Buffer-Data, Arrays, OrderedCollections, Tuples, SortedCollections, Sets, HashTables (Dictionaries) and other collection types. Without such a dynamic type system, many more blocks would be needed for a comparable set of functions (see IEC1131, for example, which uses a similar execution model, but a static type system).


The automatic type conversion between Integer and LargeInteger (whenever a value cannot be represented within 32bit) and vice versa, and the automatic conversion of a quotient to a Fraction and the reduction back to an Integer avoid rounding errors and loss of precision.
The automatic type conversion between Integer and LargeInteger (whenever a value cannot be represented within 32bit) and vice versa, and the automatic conversion of a quotient to a Fraction and the reduction back to an Integer avoid rounding errors and loss of precision.
Zeile 9: Zeile 13:


{{noprint| 1=
{{noprint| 1=
Back to [[Online_Documentation#Library_and_Plugin_Overview | Online Documentation]]
Back to [[Online Documentation#Library_and_Plugin_Overview|Online Documentation]]
}}
}}

== Library Overview ==

Notice, that we do not provide full descriptions of all library actions here for two reasons: first, it takes a lot of effort to prepare these pages and they still have a tendency to be outdated or new actions were missing.
Therefore, only a few are actually documented here - please take a look at details inside expecco: for one, the information there is always up-to-date, and second, the information there is usually more detailed, and expecco provides nice search functions (both by name and by expected outcome).


== Numbers ==
== Numbers ==
Zeile 24: Zeile 33:
* [[ Arith Product | '''Arith [ Product ]''' ]]<br/> Product of its numeric input values.
* [[ Arith Product | '''Arith [ Product ]''' ]]<br/> Product of its numeric input values.
* [[ Arith Product+ | '''Arith [ Product+ ]''' ]]<br/> Product of its numeric input values (arbitrary number of input pins) (2.3.0).
* [[ Arith Product+ | '''Arith [ Product+ ]''' ]]<br/> Product of its numeric input values (arbitrary number of input pins) (2.3.0).
* [[ Arith Quotient | '''Arith [ Quotient ]''' ]]<br/> Quotient of its numeric input values.
* [[ Arith Quotient | '''Arith [ Quotient ]''' ]]<br/> Quotient of its numeric input values.<br>May fail due to a Division by Zero exception.
* [[ Arith Modulu | '''Arith [ Modulu ]''' ]]<br/> Remainder from dividing its numeric input values.
* [[ Arith Modulu | '''Arith [ Modulu ]''' ]]<br/> Remainder from dividing its numeric input values.<br>May fail due to a Division by Zero exception.
* [[ Arith Square Root | '''Arith [ Square Root ]''' ]]<br/> The square root.
* [[ Arith Square Root | '''Arith [ Square Root ]''' ]]<br/> The square root.<br>May raise a Domain exception (sqrt negative number).
* [[ Arith RaisedTo | '''Arith [ RaisedTo ]''' ]]<br/> Raising x to the n'th power. n max be a fraction (for roots).
* [[ Arith RaisedTo | '''Arith [ RaisedTo ]''' ]]<br/> Raising x to the n'th power. n may be a fraction (for roots).
* [[ Arith Ln | '''Arith [ Ln ]''' ]]<br/> The natural logarithm (base e).
* [[ Arith Ln | '''Arith [ Ln ]''' ]]<br/> The natural logarithm (base e).<br>May raise a Domain exception.
* [[ Arith Lg | '''Arith [ Lg ]''' ]]<br/> The logarithm base 10.
* [[ Arith Lg | '''Arith [ Lg ]''' ]]<br/> The logarithm base 10.<br>May raise a Domain exception.
* [[ Arith Ld | '''Arith [ Ld ]''' ]]<br/> The logarithm base 2. This could also be computed as: ln(input) / ln(2) (1.7.2).
* [[ Arith Ld | '''Arith [ Ld ]''' ]]<br/> The logarithm base 2. This could also be computed as: ln(input) / ln(2) (1.7.2).<br>May raise a Domain exception.
* [[ Arith_Min and Arith_Max | '''Arith [ Min ]''' ]]<br/> Minimum of its numeric input values.
* [[ Arith_Min and Arith_Max | '''Arith [ Min ]''' ]]<br/> Minimum of its numeric input values.
* [[ Arith_Min and Arith_Max | '''Arith [ Max ]''' ]]<br/> Maximum of its numeric input values.
* [[ Arith_Min and Arith_Max | '''Arith [ Max ]''' ]]<br/> Maximum of its numeric input values.
Zeile 40: Zeile 49:
* [[ Arith isPositive | '''Arith [ IsPositive? ]''' ]]<br/> True if the input is >= 0
* [[ Arith isPositive | '''Arith [ IsPositive? ]''' ]]<br/> True if the input is >= 0
* [[ Arith isNegative | '''Arith [ IsNegative? ]''' ]]<br/> True if the input is < 0
* [[ Arith isNegative | '''Arith [ IsNegative? ]''' ]]<br/> True if the input is < 0
* [[ Arith isPositiveOrNegative | '''Arith [ IsPositiveOrNegative? ]''']]<br/> Pass the input number to one of two outputs depending on wether it is >=0 or <0.
* [[ Arith isPositiveOrNegative | '''Arith [ IsPositiveOrNegative? ]''']]<br/> Pass the input number to one of two outputs depending on whether it is >=0 or <0.
* [[ Arith sign | '''Arith [ Sign? ]''' ]]<br/> Pass the input number to one of three outputs depending on wether it is >0, =0 or <0. (1.7.2).
* [[ Arith sign | '''Arith [ Sign? ]''' ]]<br/> Pass the input number to one of three outputs depending on whether it is >0, =0 or <0. (1.7.2).
* [[ Arith signum | '''Arith [ Signum ]''' ]]<br/> The signum (-1, 0 or 1) of the incoming number. (1.7.2).
* [[ Arith signum | '''Arith [ Signum ]''' ]]<br/> The signum (-1, 0 or 1) of the incoming number. (1.7.2).
* [[ Arith ceilFloorRound | '''Arith [ Ceiling ]''' ]]<br/> The ceiling (integer above) of the incoming number.
* [[ Arith ceilFloorRound | '''Arith [ Ceiling ]''' ]]<br/> The ceiling (integer above) of the incoming number.
Zeile 78: Zeile 87:
* [[ Arith Sum_32 | '''Arith [ 32bit Sum ]''' ]]<br/> Sum in 32 bit number range (1.7.3)
* [[ Arith Sum_32 | '''Arith [ 32bit Sum ]''' ]]<br/> Sum in 32 bit number range (1.7.3)
* [[ Arith Diff_32 | '''Arith [ 32bit Difference ]''' ]]<br/> Difference in 32 bit number range (1.7.3)
* [[ Arith Diff_32 | '''Arith [ 32bit Difference ]''' ]]<br/> Difference in 32 bit number range (1.7.3)
* [[ Arith Mul_32 | '''Arith [ 32bit Product]''' ]]<br/> Product in 32 bit number range (1.7.3)
* [[ Arith Mul_32 | '''Arith [ 32bit Product ]''' ]]<br/> Product in 32 bit number range (1.7.3)

=== Rounding & Truncation ===
* [[ Arith Ceiling | '''Arith [ Ceiling ]''' ]]<br/> Ceiling (round to next larger integer towards positive infinity)
* [[ Arith Floor | '''Arith [ Floor ]''' ]]<br/> Floor (round to next smaller integer towards negative infinity)
* [[ Arith Truncate | '''Arith [ Truncate ]''' ]]<br/> Round to next integer towards zero
* [[ Arith Round | '''Arith [ Round ]''' ]]<br/> Round to next integer
* [[ Arith RoundTo | '''Arith [ RoundTo ]''' ]]<br/> Round to next multiple of a given grid value
* [[ Arith Round to Scale | '''Arith [ Round to Scale ]''' ]]<br/> Round a FixedPoint number to its scale
* [[ Arith Set Scale | '''Arith [ Set Scale ]''' ]]<br/> Change a FixedPoint number's scale
* [[ Arith Truncate to Scale | '''Arith [ Truncate to Scale ]''' ]]<br/> Truncate a FixedPoint to its scale


== Assertions, Exceptions & Logging ==
== Assertions, Exceptions & Logging ==


* [[ fail | '''FAIL''' ]]<br/> Report a Failure. This means, that the system under test failed a test.
* [[ FAIL | '''FAIL''' ]]<br/> Report a Failure. This means, that the system under test failed a test.
* [[ fail2 | '''FAIL2''' ]]<br/> Report a Failure. This means, that the system under test failed a test. Optionally decorate the failure-message with pre-/postFix string.
* [[ FAIL2 | '''FAIL2''' ]]<br/> Report a Failure. This means, that the system under test failed a test. Optionally decorate the failure-message with pre-/postFix string.
* [[ error | '''ERROR''' ]]<br/> Report an Error. This means, that something unexpected (an error) occured in the expecco test suite itself. The test suite must be fixed.
* [[ ERROR | '''ERROR''' ]]<br/> Report an Error. This means, that something unexpected (an error) occurred in the expecco test suite itself. The test suite must be fixed.
* [[ error2 | '''ERROR2''' ]]<br/> Report an Error. Optionally decorate the error-message with pre-/postFix string.
* [[ ERROR2 | '''ERROR2''' ]]<br/> Report an Error. Optionally decorate the error-message with pre-/postFix string.
* [[ inconclusive | '''INCONCLUSIVE''' ]]<br/> Report an Inconclusive state. This means, that we cannot tell, what the test result is.
* [[ INCONCLUSIVE | '''INCONCLUSIVE''' ]]<br/> Report an Inconclusive state. This means, that we cannot tell, what the test result is.
* [[ inconclusive2 | '''INCONCLUSIVE2''' ]]<br/> Report an Inconclusive state. Optionally decorate the message with pre-/postFix string.
* [[ INCONCLUSIVE2 | '''INCONCLUSIVE2''' ]]<br/> Report an Inconclusive state. Optionally decorate the message with pre-/postFix string.
* [[ pass | '''PASS''' ]]<br/> Report a Successful Test. This means, that the system under test passed the test.
* [[ PASS | '''PASS''' ]]<br/> Report a Successful Test. This means, that the system under test passed the test.
* [[ pass2 | '''PASS2''' ]]<br/> Report a Successful Test. Optionally decorate the pass-message with pre-/postFix string.
* [[ PASS2 | '''PASS2''' ]]<br/> Report a Successful Test. Optionally decorate the pass-message with pre-/postFix string.
* [[ ok | '''OK''' ]]<br/> Finish the current Activity and mark it as successful.
* [[ OK | '''OK''' ]]<br/> Finish the current Activity and mark it as successful.
* [[ OK2 | '''OK2''' ]]<br/> Finish the current Activity and mark it as successful. Optionally decorate the success-message with pre-/postFix string.
* [[ OK2 | '''OK2''' ]]<br/> Finish the current Activity and mark it as successful. Optionally decorate the success-message with pre-/postFix string.
* [[ ABORT | '''ABORT''' ]]<br/> Finish the current Activity and mark it as aborted.
* [[ HALT | '''HALT''' ]]<br/> Stop end enter the debugger, but only if halts are not ignored in the settings.(1.9.1).
* [[ HALT | '''HALT''' ]]<br/> Stop end enter the debugger, but only if halts are not ignored in the settings.(1.9.1).
* [[ PAUSE | '''PAUSE''' ]]<br/> Same effect as pressing the "Pause"-button: pauses the executor. Press "Run" or "Single Step", to continue (1.9.1).
* [[ PAUSE | '''PAUSE''' ]]<br/> Same effect as pressing the "Pause"-button: pauses the executor. Press "Run" or "Single Step", to continue (1.9.1).
Zeile 102: Zeile 122:
* [[ Log Warning | '''Log [ Warning & Details ]''']]<br/> Report an Warning Message with Details.
* [[ Log Warning | '''Log [ Warning & Details ]''']]<br/> Report an Warning Message with Details.
* [[ Log Info | '''Log [ Info ]''' ]]<br/> Report an Info Message. Optionally decorate the failure-message with pre-/postFix string.
* [[ Log Info | '''Log [ Info ]''' ]]<br/> Report an Info Message. Optionally decorate the failure-message with pre-/postFix string.
* [[ Log Info | '''Log [ Info & Details ]''' ]]<br/> Report an Info Message with Details.
* [[ Log Info | '''Log [ Info & Details ]''' ]]<br/> Report an Info Message with details.
* [[ Log Data | '''Log [ Data ]''' ]]<br/> Report an Info Message with additional data.
* [[ Log Image | '''Log [ Image ]''' ]]<br/> Report an Info Message with an additional bitmap image.
* [[ Log ScreenDump | '''Log [ Screendump ]''' ]]<br/> Report an Info Message and attach a screen dump of the whole screen.
* [[ Log ScreenDump | '''Log [ Screendump ]''' ]]<br/> Report an Info Message and attach a screen dump of the whole screen.
* [[ Log ScreenDump | '''Log [ Screendump Area ]''' ]]<br/> Report an Info Message and attach a screen dump of a screen area.
* [[ Log ScreenDump | '''Log [ Screendump Area ]''' ]]<br/> Report an Info Message and attach a screen dump of a screen area.
* [[ Log ScreenDump to File | '''Log [ Screendump to File]''' ]]<br/> Report an Info Message and save a screen dump of the whole screen at a given path.
* [[ Log ScreenDump to File | '''Log [ Screendump to File]''' ]]<br/> Report an Info Message and save a screen dump of the whole screen at a given path.
* [[ Log ScreenDump to File | '''Log [ Screendump Area to File]''' ]]<br/> Report an Info Message and save a screen dump of a screen area at a given path.
* [[ Log ScreenDump to File | '''Log [ Screendump Area to File]''' ]]<br/> Report an Info Message and save a screen dump of a screen area at a given path.
* [[ Log Attach DataFile | '''Log [ Attach DataFile]''' ]]<br/> Report an Info Message and attach a data file. The file will be attached to the generated .elf (report file).
* [[ Log Attach Image | '''Log [ Attach DataFile]''' ]]<br/> Report an Info Message and attach a bitmap image file. The image will be attached to the generated .elf (report file).
* [[ Log Attach ScreenDump | '''Log [ Attach Screendump]''' ]]<br/> Report an Info Message and attach a screen dump image file. The image will be attached to the generated .elf (report file).
* [[ Log Attach ScreenDump | '''Log [ Attach Screendump Area]''' ]]<br/> Report an Info Message and attach a screen dump image file. The image will be attached to the generated .elf (report file).

=== Info Messages ===
=== Info Messages ===
* [[ Information Message | '''Information Message''' ]]<br/> Show some message in the browser's info area (at the bottom). Useful to provide some progress-feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
* [[ Information Message | '''Information Message''' ]]<br/> Show a message in the browser's info area (at the bottom). Useful to provide some progress-feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
* [[ Information Message | '''Information Message (Warning)''' ]]<br/> Show a warning message in the browser's info area (at the bottom). Useful to provide some progress-feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
* [[transcriber | '''Transcriber''' ]]<br/> Displays its input string as a line in the Transcript window. If there is no open Transcript window, a new one will be opened. Useful to provide some feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
* [[transcriber | '''Transcriber''' ]]<br/> Displays its input string as a line in the Transcript window. If there is no open Transcript window, a new one will be opened. Useful to provide some feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
* [[transcriber without cr | '''Transcriber without CR''' ]]<br/> Displays its input string in the Transcript window like the transcriber, but does not generate a newLine at the end. If there is no open Transcript window, a new one will be opened. Useful to provide some feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
* [[transcriber without cr | '''Transcriber without CR''' ]]<br/> Displays its input string in the Transcript window like the transcriber, but does not generate a newLine at the end. If there is no open Transcript window, a new one will be opened. Useful to provide some feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
Zeile 115: Zeile 143:
* [[ Clear Transcript Window | '''Clear Transcript Window''' ]]<br/>Clears the transcript window. If there is no existing Transcript window, this is a NO-Operation (1.9.1).
* [[ Clear Transcript Window | '''Clear Transcript Window''' ]]<br/>Clears the transcript window. If there is no existing Transcript window, this is a NO-Operation (1.9.1).
* [[ Contents of Transcript | '''Contents of Transcript''' ]]<br/>Retrieves the contents of the transcript window as a collection of line-strings (1.9.1).
* [[ Contents of Transcript | '''Contents of Transcript''' ]]<br/>Retrieves the contents of the transcript window as a collection of line-strings (1.9.1).
* [[ Log Start of Testcase on Transcript | '''Log Start of Testcase on Transcript''' ]]<br/>Generates a log message about a started testcase on the Transcript.
* [[ Log Finish of Testcase on Transcript | '''Log Finish of Testcase on Transcript''' ]]<br/>Generates a log message about a finished testcase on the Transcript.


=== Assertions ===
=== Assertions ===
Zeile 180: Zeile 210:
Many compare blocks come in two versions: one which generates a true/false boolean value (the 1-way blocks) and another, which sends the result to one of two (or three) different outputs. The later are very useful to split the flow of control to different followup blocks (although that behaviour could also be simulated by using a 1-way compare followed by a pass-data block from the "misc" section).
Many compare blocks come in two versions: one which generates a true/false boolean value (the 1-way blocks) and another, which sends the result to one of two (or three) different outputs. The later are very useful to split the flow of control to different followup blocks (although that behaviour could also be simulated by using a 1-way compare followed by a pass-data block from the "misc" section).


Notice: these blocks allow for Numbers, Strings, Collections and some other types to be compared. However, for the order releation compare operations, the types must be compatible; you cannot mix Numbers with Strings or other there.
Notice: these blocks allow for Numbers, Strings, Collections and some other types to be compared. However, for the order relation compare operations, the types must be compatible; you cannot mix Numbers with Strings or other there.


* [[ compare 3 way | '''Compare [ 3-Way ]''' ]]<br> Sends a boolean "true" value to one of its three outputs: LESS, EQUAL or GREATER.
* [[ compare 3 way | '''Compare [ 3-Way ]''' ]]<br> Sends a boolean "true" value to one of its three outputs: LESS, EQUAL or GREATER.
Zeile 196: Zeile 226:
* [[ compare greater 2 way | '''Compare [ Greater 2-Way ]''' ]]<br/> If the input at in1 is greater than in2, send it to the triggerYES output. Otherwise, send it to triggerNO.
* [[ compare greater 2 way | '''Compare [ Greater 2-Way ]''' ]]<br/> If the input at in1 is greater than in2, send it to the triggerYES output. Otherwise, send it to triggerNO.


* [[ compare equal | '''Compare [ Equal ]''' ]]<br/> Generate a true if in1 is qual to the input value2 in2; otherwise, generate a false.
* [[ compare equal | '''Compare [ Equal ]''' ]]<br/> Generate a true if in1 is equal to the input value2 in2; otherwise, generate a false.


* [[ compare not equal | '''Compare [ Not Equal ]''' ]]<br/> Generate true if in1 is not equal to in2; otherwise, generate a false.
* [[ compare not equal | '''Compare [ Not Equal ]''' ]]<br/> Generate true if in1 is not equal to in2; otherwise, generate a false.
Zeile 221: Zeile 251:
* [[ random time deltas | '''Random [ Time Deltas ] ''' ]]<br/> Produces a number (default: 1) of random timeDeltas on its output.
* [[ random time deltas | '''Random [ Time Deltas ] ''' ]]<br/> Produces a number (default: 1) of random timeDeltas on its output.
* [[ random permutation | '''Random [Permutation] ''' ]]<br/> Produces a number (default: 1) of random permutations of the input-collection.
* [[ random permutation | '''Random [Permutation] ''' ]]<br/> Produces a number (default: 1) of random permutations of the input-collection.
* [[ generate alle permutations | ''' Generate all Permutations ''' ]]<br/> Produces all permutaions of the collection given to its input.
* [[ generate all permutations | '''Generate all Permutations ''' ]]<br/> Produces all permutations of the collection given to its input.
* [[ generate series | ''' Generate Series ''' ]]<br/> Produces values from an arithmetic series.
* [[ generate series | '''Generate Series ''' ]]<br/> Produces values from an arithmetic series.
* [[ generate geometric series | ''' Generate Geometric Series ''' ]]<br/> Produces values from a geometric series.
* [[ generate geometric series | '''Generate Geometric Series ''' ]]<br/> Produces values from a geometric series.
* [[ random uuid | '''Generate UUID ''' ]]<br/> Generate a new Universally Unique ID (UUID) as defined in RFC4122
* [[ random uuid | '''Generate UUID ''' ]]<br/> Generate a new Universally Unique ID (UUID) as defined in RFC4122
* [[ generate prime numbers | ''' Generate Prime Numbers ''' ]]<br/> Produces a collection of prime numbers. (1.7.2)
* [[ generate prime numbers | '''Generate Prime Numbers ''' ]]<br/> Produces a collection of prime numbers. (1.7.2)
* [[ next prime number | ''' Next Prime ''' ]]<br/> Generates the next prime after some number. (1.7.2)
* [[ next prime number | '''Next Prime ''' ]]<br/> Generates the next prime after some number. (1.7.2)


== Data Types ==
== Data Types ==
Zeile 232: Zeile 262:
Additional Datatypes. No description yet.
Additional Datatypes. No description yet.


== Event Queues ==

Contains support for asynchronous event handling. A sample suite is found in "<code>demos/d62_Event_Queue_Demos.ets</code>".

==== Overview ====

The general pattern consists of an event handler process, which runs as a separate thread
and reads events from a so-called ''event queue''.
Whenever an event arrives, a handler action is selected and invoked to process the event.
Handler actions are registered by eventType, which is a symbolic tag, attached to every event.
Actions themself are defined as an expecco action (or JavaScript function or Smalltalk block),
which must take a single input, the event to be processed.

==== The Global Event Handler ====
Although there might be any number of active event handler processes running,
typical suites use a single common and globally known handler, which is started
and initialized at the very beginning of a test run (eg. in a testplan's pre-action, or a suite's post-load-action).

There, individual actions should be registered for individual event types or an action for #default, to handle any other type of event.

==== Sending Events ====
Events can be generated either via regular action blocks, or via calls to the Activity API.
The API is available both to internal elementary actions (i.e. Smalltalk and JavaScript actions),
and to bridged (i.e. Node or Python) actions.

This makes it possible to communicate asynchronously from processes started inside a Node or Python
server process. For example, a communication protocol reader, which may push events on incoming messages,
to be processed asynchronously by an expecco action (eg. registered event handler action).

* [[EventServer Get Global Server | '''EventServer [ Get Global Server ]''' ]]<br/> Retrieve the global event handling server
* [[EventServer Register Handler | '''EventServer [ Register Handler ]''' ]]<br/> Register a handler action in the global event handling server
* [[EventServer Suspend | '''EventServer [ Suspend ]''' ]]<br/> Suspend event processing
* [[EventServer Resume | '''EventServer [ Resume ]''' ]]<br/> Resume event processing
* [[EventServer Flush | '''EventServer [ Flush ]''' ]]<br/> Flush pending events
* [[EventQueue Create & Push Global Event | '''EventQueue [ Create & Push Global Event ]''' ]]<br/> Push an event onto the global event queue
&nbsp;


== Files & Directories ==
== Files & Directories ==
Zeile 357: Zeile 423:
* [[ pass data if false | '''Pass Data if False''' ]]<br/> Used to conditionally pass data along a connection or to block/throw it away in other situations.
* [[ pass data if false | '''Pass Data if False''' ]]<br/> Used to conditionally pass data along a connection or to block/throw it away in other situations.


* [[ pass data if true or false | '''Pass Data if True/False''' ]]<br/> Used to conditionally pass data along one of two alternative connection pathes.
* [[ pass data if true or false | '''Pass Data if True/False''' ]]<br/> Used to conditionally pass data along one of two alternative connection paths.


* [[ if true false 2 way | '''If True/False (2 way)''' ]]<br/> Passes the incoming boolean to one of two outputs (split execution path) (1.9.1).
* [[ if true false 2 way | '''If True/False (2 way)''' ]]<br/> Passes the incoming boolean to one of two outputs (split execution path) (1.9.1).
Zeile 418: Zeile 484:
=== Resources ===
=== Resources ===


* [[Get Resource by ID| ''' Get Resource by ID ''' ]] <br/> Retrieve an already aquired resource, given a skill-id (1.7.4).
* [[Get Resource by ID| ''' Get Resource by ID ''' ]] <br/> Retrieve an already acquired resource, given a skill-id (1.7.4).


* [[Get Name from Resource| ''' Get Name from Resource ''' ]] <br/> Retrieve a resource's name (1.7.4).
* [[Get Name from Resource| ''' Get Name from Resource ''' ]] <br/> Retrieve a resource's name (1.7.4).
Zeile 429: Zeile 495:


* [[ Net IPAdress | ''' Net [ IPAdress ] ''' ]] <br/> Retrieve a hosts TCP/IP address.
* [[ Net IPAdress | ''' Net [ IPAdress ] ''' ]] <br/> Retrieve a hosts TCP/IP address.
* [[ Net LocalIPAdress | ''' Net [ LocalIPAdress ] ''' ]] <br/> Retrive the machines own IP Address.
* [[ Net LocalIPAdress | ''' Net [ LocalIPAdress ] ''' ]] <br/> Retrieve the machines own IP Address.


=== Checksums & Cryptography ===
=== Checksums & Cryptography ===
Zeile 440: Zeile 506:


* [[ T_FTPLink | ''' T_FTPLink ''' ]] <br/> This datatype represents the ftp-client object.
* [[ T_FTPLink | ''' T_FTPLink ''' ]] <br/> This datatype represents the ftp-client object.
* [[ ftp connect-e | ''' FTP [ Connect-E] ''' ]] <br/> Crate a ftp-connection.
* [[ ftp connect-e | ''' FTP [ Connect-E] ''' ]] <br/> Create a ftp-connection.
* [[ ftp get-e | ''' FTP [ Get-E ] ''' ]] <br/> Get a file via ftp, and store it local.
* [[ ftp get-e | ''' FTP [ Get-E ] ''' ]] <br/> Get a file via ftp, and store it local.
* [[ ftp put-e | ''' FTP [ Put-E ] ''' ]] <br/> Put a local file via ftp to the remote destination.
* [[ ftp put-e | ''' FTP [ Put-E ] ''' ]] <br/> Put a local file via ftp to the remote destination.
Zeile 492: Zeile 558:
* [[ os hostname | ''' OS [ HostName ] ''' ]] <br/> Retrieve the machine's host name.
* [[ os hostname | ''' OS [ HostName ] ''' ]] <br/> Retrieve the machine's host name.
* [[ os language | ''' OS [ Language ] ''' ]] <br/> Retrieve the machine's language setting.
* [[ os language | ''' OS [ Language ] ''' ]] <br/> Retrieve the machine's language setting.
* [[ os macadresses | ''' OS [ MACAddresses ] ''' ]] <br/> Retrive the machine's MAC (network-adapter/ethernet) addresses.
* [[ os macadresses | ''' OS [ MACAddresses ] ''' ]] <br/> Retrieve the machine's MAC (network-adapter/ethernet) addresses.
* [[ os type | ''' OS [ Type ] ''' ]] <br/> Get the type of OperatingSystem (win32, linux, etc.) we are running on.
* [[ os type | ''' OS [ Type ] ''' ]] <br/> Get the type of OperatingSystem (win32, linux, etc.) we are running on.
* [[ os is windows | ''' OS [ Is Windows ] ''' ]] <br/> Check if running on Windows (1.8.3).
* [[ os is windows | ''' OS [ Is Windows ] ''' ]] <br/> Check if running on Windows (1.8.3).
Zeile 499: Zeile 565:
* [[ os drivelist | ''' OS [ DriveList ] ''' ]] <br/> Retrieve the list of drives in the machine (C:, D:, ...)
* [[ os drivelist | ''' OS [ DriveList ] ''' ]] <br/> Retrieve the list of drives in the machine (C:, D:, ...)
* [[ os loginname | ''' OS [ LoginName ] ''' ]] <br/> Retrieve the user's login name.
* [[ os loginname | ''' OS [ LoginName ] ''' ]] <br/> Retrieve the user's login name.
* [[ os fullusername | ''' OS [ FullUserName ] ''' ]] <br/> Retrive the user's full name.
* [[ os fullusername | ''' OS [ FullUserName ] ''' ]] <br/> Retrieve the user's full name.
* [[ os defaultsystempath | ''' OS [ DefaultSystemPath ] ''' ]] <br/> Retrieve the default system path.
* [[ os defaultsystempath | ''' OS [ DefaultSystemPath ] ''' ]] <br/> Retrieve the default system path.


Zeile 525: Zeile 591:
* [[string endswith | ''' String [ EndsWith? ] ''' ]] <br/> If the given string ends with another string (suffix string) send the original string to the triggerYES output. Otherwise send it to the triggerNO output.
* [[string endswith | ''' String [ EndsWith? ] ''' ]] <br/> If the given string ends with another string (suffix string) send the original string to the triggerYES output. Otherwise send it to the triggerNO output.
* [[string Soundex | ''' String [ Soundex ] ''' ]] <br/> Generates a soundex string (see Knuth, for example)
* [[string Soundex | ''' String [ Soundex ] ''' ]] <br/> Generates a soundex string (see Knuth, for example)
* [[string MySQLSoundex | ''' String [ MySQLSoundex ] ''' ]] <br/> Generates a mySQL soundex string (see Knuth, for example)
* [[string MySQLSoundex | ''' String [ MySQLSoundex ] ''' ]] <br/> Generates a MySQL soundex string (see Knuth, for example)
* [[string KoelnerPhonetic | ''' String [ KölnerPhonetic ] ''' ]] <br/> Generates a kölnerPhonetic code string.
* [[string KoelnerPhonetic | ''' String [ KölnerPhonetic ] ''' ]] <br/> Generates a kölnerPhonetic code string.
* [[string EditDistance | ''' String [ EditDistance ] ''' ]] <br/> Generates a value for the edit distance (actually levenshtein), which is a measure for how many edit operations are needed to get from string1 to string2.
* [[string EditDistance | ''' String [ EditDistance ] ''' ]] <br/> Generates a value for the edit distance (actually Levenshtein), which is a measure for how many edit operations are needed to get from string1 to string2.


=== Copying ===
=== Copying ===
Zeile 545: Zeile 611:
* [[base64| ''' Base 64 Encode [ Base64String to String ] ''' ]] <br/> Decodes a base64 encoded string.
* [[base64| ''' Base 64 Encode [ Base64String to String ] ''' ]] <br/> Decodes a base64 encoded string.
* [[Rot13 | ''' Rot13 [ String to String ] ''' ]] <br/> Apply a simple Caesar rot13 cypher.
* [[Rot13 | ''' Rot13 [ String to String ] ''' ]] <br/> Apply a simple Caesar rot13 cypher.
* [[UTF8| ''' UTF8 Encode [ String to UTF8String ] ''' ]] <br/> Converts a string to its utf8 encoding.
* [[UTF8| ''' UTF8 Encode [ String to UTF8String ] ''' ]] <br/> Converts a string to its UTF-8 encoding.
* [[UTF8| ''' UTF8 Decode [ UTF8String to String ] ''' ]] <br/> Decodes an utf8 encoded string.
* [[UTF8| ''' UTF8 Decode [ UTF8String to String ] ''' ]] <br/> Decodes a UTF-8 encoded string.
* [[asciistring convert to hexstring | ''' ASCIIString[ Convert to HexString] ''' ]] <br/> Converts a String to a string containing the original strings characters as hex-encoded pairs.
* [[asciistring convert to hexstring | ''' ASCIIString[ Convert to HexString] ''' ]] <br/> Converts a String to a string containing the original strings characters as hex-encoded pairs.
* [[hexstring convert to asciistring | ''' HexString [ Convert to ASCIIString ] ''' ]] <br/> Converts a twoByte HexString to its ascii representation.
* [[hexstring convert to asciistring | ''' HexString [ Convert to ASCIIString ] ''' ]] <br/> Converts a twoByte HexString to its ASCII representation.


=== Padding & Formatting ===
=== Padding & Formatting ===
Zeile 601: Zeile 667:
=== Socket Streams ===
=== Socket Streams ===
* [[ Socket Connect | '''Socket [ Connect ]''' ]] <br/> Create a new TCP connection to a port on a host. (1.7.1)
* [[ Socket Connect | '''Socket [ Connect ]''' ]] <br/> Create a new TCP connection to a port on a host. (1.7.1)
* [[ Socket Wait For Connection | '''Socket [ Wait For Connection ]''' ]] <br/> Listen on a TCP-socket identified by its port number. (1.7.1)
* [[ Socket Wait For Connection | '''Socket [ Wait For Connection ]''' ]] <br/> Listen on a TCP socket identified by its port number. (1.7.1)


===Internal Streams ===
===Internal Streams ===
Zeile 705: Zeile 771:
== Tools ==
== Tools ==


* [[ winows open docuemnt | ''' Windows [ Open Document ] ''' ]] <br/> Ask the windows shell, to open a document. Will start the application which is associated to the file-type (1.9.1).
* [[ windows open document | ''' Windows [ Open Document ] ''' ]] <br/>Ask the Windows shell to open a document. Will start the application that is associated with the file type (1.9.1).


== Type Conversion ==
== Type Conversion ==
Zeile 753: Zeile 819:
== Variables ==
== Variables ==


* [[ environment get-by-name | ''' Environment [ Get by Name ]''' ]] <br/> Get a value from a surrounding expecco environment.
* [[ environment get-by-name | ''' Environment [ Get by Name ]''' ]] <br/> Get a value from a surrounding expecco environment.


* [[ environment set-by-name | ''' Environment [ Set by Name ]''' ]] <br/> Set an Environment-variable.
* [[ environment set-by-name | ''' Environment [ Set by Name ]''' ]] <br/> Set an Environment-variable.


* [[ environment clear_by_name | ''' Environment [ Clear by Name ]''' ]] <br/> Clear (unset) an environment variable.
* [[ environment clear_by_name | ''' Environment [ Clear by Name ]''' ]] <br/> Clear (unset) an environment variable.


* [[ environment set variable | ''' Environment [ Set Variable ]''' ]]<br/> Set an Environment-variable (1.7.1).
* [[ environment set variable | ''' Environment [ Set Variable ]''' ]]<br/> Set an Environment-variable (1.7.1).


* [[ environment create-with-name | ''' Environment [ Create with Name ]''' ]]<br/> Create a new environment variable in the containing block's environment (1.7.1).
* [[ environment create-with-name | ''' Environment [ Create with Name ]''' ]]<br/> Create a new environment variable in the containing block's environment (1.7.1).


* [[ environment create-with-name-and-value | ''' Environment [ Create with Name and Value ]''' ]]<br/> Create a new environment variable in the containing block's environment (1.8.0).
* [[ environment create-with-name-and-value | ''' Environment [ Create with Name and Value ]''' ]]<br/> Create a new environment variable in the containing block's environment (1.8.0).


* [[ environment create-in-executor-environment | ''' Environment [ Create in Executor Environment ]''' ]]<br/> Create a new environment variable in the executor's environment (1.8.0).
* [[ environment create-in-executor-environment | ''' Environment [ Create in Executor Environment ]''' ]]<br/> Create a new environment variable in the executor's environment (1.8.0).


* [[ environment remove-by-name | ''' Environment [ Remove by Name ]''' ]]<br/> Remove an environment variable from the containing block's environment (1.7.1).
* [[ environment remove-by-name | ''' Environment [ Remove by Name ]''' ]]<br/> Remove an environment variable from the containing block's environment (1.7.1).


* [[ Environment_watch_by_name_for_changes | ''' Environment [ Watch by Name for Changes ]''' ]]<br/> Watch a variable (1.7.1).
* [[ Environment_watch_by_name_for_changes | ''' Environment [ Watch by Name for Changes ]''' ]]<br/> Watch a variable (1.7.1).


* [[ Environment_wait_by_name_for_changes | ''' Environment [ Wait by Name for Changes ]''' ]]<br/> Wait for a variable to change (1.7.1).
* [[ Environment_wait_by_name_for_changes | ''' Environment [ Wait by Name for Changes ]''' ]]<br/> Wait for a variable to change (1.7.1).


* [[ Environment_watch_variable_for_changes | ''' Environment [ Watch Variable for Changes ]''' ]]<br/> Watch the variable from which my input is frozen. (1.7.1).
* [[ Environment_watch_variable_for_changes | ''' Environment [ Watch Variable for Changes ]''' ]]<br/> Watch the variable from which my input is frozen. (1.7.1).


* [[ Environment_wait_for_variable_to_change | ''' Environment [ Wait for Variable to Change ]''' ]]<br/> Wait for the variable from which my input is frozen, to change (1.7.1).
* [[ Environment_wait_for_variable_to_change | ''' Environment [ Wait for Variable to Change ]''' ]]<br/> Wait for the variable from which my input is frozen, to change (1.7.1).


* [[ environment Initialize Project Environment | ''' Environment [ Initialize Project Environment ]''' ]]<br/> Reinitialize all project variables (1.7.2).
* [[ environment Initialize Project Environment | ''' Environment [ Initialize Project Environment ]''' ]]<br/> Reinitialize all project variables (1.7.2).




Zeile 783: Zeile 849:
{{noprint| 1=
{{noprint| 1=


Back to [[Online_Documentation#Library_and_Plugin_Overview | Online Documentation]]
Back to [[Online Documentation#Library_and_Plugin_Overview|Online Documentation]]


Go to [[Release Notes expecco | Release Notes]]
Go to [[Release Notes expecco|Release Notes]]
}}
}}

Version vom 14. August 2020, 10:34 Uhr

Disclaimer[Bearbeiten]

The deployed expecco libraries are constantly improved and new actions are added with every release. Therefore, the following list covers only a small subset of the available functions and is no longer maintained. Please take a look at the actual standard library in your expecco IDE.

Introduction[Bearbeiten]

The StandardLibrary contains general domain-independent function blocks. These are useful for any kind of test-development.

One of the features which make the StandardLibrary very flexible is the dynamic type system of the underlying implementation language. This allows for action blocks to handle a wide range of possible input values. For example, arithmetic blocks ("Arith [ * ]") all allow for Integers, Floats, LargeIntegers, Fractions, FixedPoint-Decimals and Measurement Values to be used as input (where appropriate). And most of the collection blocks ("Collection [ * ]") can deal with Strings, ByteArrays, Buffer-Data, Arrays, OrderedCollections, Tuples, SortedCollections, Sets, HashTables (Dictionaries) and other collection types. Without such a dynamic type system, many more blocks would be needed for a comparable set of functions (see IEC1131, for example, which uses a similar execution model, but a static type system).

The automatic type conversion between Integer and LargeInteger (whenever a value cannot be represented within 32bit) and vice versa, and the automatic conversion of a quotient to a Fraction and the reduction back to an Integer avoid rounding errors and loss of precision.    

Back to Online Documentation

Library Overview[Bearbeiten]

Notice, that we do not provide full descriptions of all library actions here for two reasons: first, it takes a lot of effort to prepare these pages and they still have a tendency to be outdated or new actions were missing. Therefore, only a few are actually documented here - please take a look at details inside expecco: for one, the information there is always up-to-date, and second, the information there is usually more detailed, and expecco provides nice search functions (both by name and by expected outcome).

Numbers[Bearbeiten]

Arithmetic[Bearbeiten]

Bit Manipulation[Bearbeiten]

Trigonometric[Bearbeiten]

Misc Math[Bearbeiten]

Modulu Arithmetic[Bearbeiten]

Rounding & Truncation[Bearbeiten]

Assertions, Exceptions & Logging[Bearbeiten]

  • FAIL
    Report a Failure. This means, that the system under test failed a test.
  • FAIL2
    Report a Failure. This means, that the system under test failed a test. Optionally decorate the failure-message with pre-/postFix string.
  • ERROR
    Report an Error. This means, that something unexpected (an error) occurred in the expecco test suite itself. The test suite must be fixed.
  • ERROR2
    Report an Error. Optionally decorate the error-message with pre-/postFix string.
  • INCONCLUSIVE
    Report an Inconclusive state. This means, that we cannot tell, what the test result is.
  • INCONCLUSIVE2
    Report an Inconclusive state. Optionally decorate the message with pre-/postFix string.
  • PASS
    Report a Successful Test. This means, that the system under test passed the test.
  • PASS2
    Report a Successful Test. Optionally decorate the pass-message with pre-/postFix string.
  • OK
    Finish the current Activity and mark it as successful.
  • OK2
    Finish the current Activity and mark it as successful. Optionally decorate the success-message with pre-/postFix string.
  • ABORT
    Finish the current Activity and mark it as aborted.
  • HALT
    Stop end enter the debugger, but only if halts are not ignored in the settings.(1.9.1).
  • PAUSE
    Same effect as pressing the "Pause"-button: pauses the executor. Press "Run" or "Single Step", to continue (1.9.1).

Logging & Messages[Bearbeiten]

Adding Log Entries[Bearbeiten]

Info Messages[Bearbeiten]

  • Information Message
    Show a message in the browser's info area (at the bottom). Useful to provide some progress-feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
  • Information Message (Warning)
    Show a warning message in the browser's info area (at the bottom). Useful to provide some progress-feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
  • Transcriber
    Displays its input string as a line in the Transcript window. If there is no open Transcript window, a new one will be opened. Useful to provide some feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
  • Transcriber without CR
    Displays its input string in the Transcript window like the transcriber, but does not generate a newLine at the end. If there is no open Transcript window, a new one will be opened. Useful to provide some feedback to the test-operator. Notice: these messages are not persistent in the generated log report. (in contrast to the Log* blocks)
  • Show Transcript Window
    Ensure that a transcript window is visible. If there is no existing Transcript window, a new one will be opened.
  • Hide Transcript Window
    Ensure that a transcript window is invisible (iconified). If there is no existing Transcript window, this is a NO-Operation.
  • Clear Transcript Window
    Clears the transcript window. If there is no existing Transcript window, this is a NO-Operation (1.9.1).
  • Contents of Transcript
    Retrieves the contents of the transcript window as a collection of line-strings (1.9.1).
  • Log Start of Testcase on Transcript
    Generates a log message about a started testcase on the Transcript.
  • Log Finish of Testcase on Transcript
    Generates a log message about a finished testcase on the Transcript.

Assertions[Bearbeiten]

Collections[Bearbeiten]

Compare[Bearbeiten]

Many compare blocks come in two versions: one which generates a true/false boolean value (the 1-way blocks) and another, which sends the result to one of two (or three) different outputs. The later are very useful to split the flow of control to different followup blocks (although that behaviour could also be simulated by using a 1-way compare followed by a pass-data block from the "misc" section).

Notice: these blocks allow for Numbers, Strings, Collections and some other types to be compared. However, for the order relation compare operations, the types must be compatible; you cannot mix Numbers with Strings or other there.

  • Compare [ 3-Way ]
    Sends a boolean "true" value to one of its three outputs: LESS, EQUAL or GREATER.
  • Compare [ Equal 2-Way ]
    Compare two values for equality; Send the first value to either the triggerYES or the triggerNO output.
  • Compare [ Less 2-Way ]
    If the input at in1 is less than in2, send it to the triggerYES output. Otherwise, send it to triggerNO.
  • Compare [ Equal ]
    Generate a true if in1 is equal to the input value2 in2; otherwise, generate a false.
  • Compare [ Less ]
    Generate a true if in1 is less than the input value2 in2; otherwise, generate a false.
  • Compare [ Greater ]
    Generate a true if in1 is greater than to the input value2 in2; otherwise, generate a false.

Data Generators[Bearbeiten]

Data Types[Bearbeiten]

Additional Datatypes. No description yet.

Event Queues[Bearbeiten]

Contains support for asynchronous event handling. A sample suite is found in "demos/d62_Event_Queue_Demos.ets".

Overview[Bearbeiten]

The general pattern consists of an event handler process, which runs as a separate thread and reads events from a so-called event queue. Whenever an event arrives, a handler action is selected and invoked to process the event. Handler actions are registered by eventType, which is a symbolic tag, attached to every event. Actions themself are defined as an expecco action (or JavaScript function or Smalltalk block), which must take a single input, the event to be processed.

The Global Event Handler[Bearbeiten]

Although there might be any number of active event handler processes running, typical suites use a single common and globally known handler, which is started and initialized at the very beginning of a test run (eg. in a testplan's pre-action, or a suite's post-load-action).

There, individual actions should be registered for individual event types or an action for #default, to handle any other type of event.

Sending Events[Bearbeiten]

Events can be generated either via regular action blocks, or via calls to the Activity API. The API is available both to internal elementary actions (i.e. Smalltalk and JavaScript actions), and to bridged (i.e. Node or Python) actions.

This makes it possible to communicate asynchronously from processes started inside a Node or Python server process. For example, a communication protocol reader, which may push events on incoming messages, to be processed asynchronously by an expecco action (eg. registered event handler action).

 

Files & Directories[Bearbeiten]

Files[Bearbeiten]

Queries[Bearbeiten]

Creation[Bearbeiten]

Directories[Bearbeiten]

GUI-Dialogs[Bearbeiten]

Inspecting & Debugging[Bearbeiten]

  • Inspect
    Open an inspector window to show some datums contents.
  • Show Image
    Open an image viewer to show some image.
  • Edit Image
    Open a bitmap editor to allow some limited image manipulations.
  • Edit Color
    Open a color editor (useful to inspect picked web-page colors).

Support[Bearbeiten]

Images[Bearbeiten]

Logic[Bearbeiten]

Misc[Bearbeiten]

  • START
    Does nothing, can be used with autostart as a trigger.
  • JOIN
    When ALL inputs are available, continue.
  • Data Sink
    Consume (and throw away) any data from the input pin.
  • Data Source
    Pass its input to its output. Can be used to start a dataflow, if the input is frozen and the block is triggered via autoStart or the START node above.
  • Pass Data if True
    Used to conditionally pass data along a connection or to block/throw it away in other situations.
  • Pass Data if False
    Used to conditionally pass data along a connection or to block/throw it away in other situations.
  • Either - Or
    Passes one of two input values to the output (1.9.1).

Expecco Reflection[Bearbeiten]

These provide info about the state of the tool and execution engine.


  • Current Testplan
    This block provides a handle to the currently executing testplan (1.9.1).
  • Current Testcase
    This block provides a handle to the currently executing testcase (1.9.1).

Reporting[Bearbeiten]

  • Report [ Generate ]
    Generates a report in a specified format for the currently running test execution (1.7.2).

Virtual to Concrete Mapping[Bearbeiten]

Resources[Bearbeiten]

Networking & Interfacing[Bearbeiten]

Checksums & Cryptography[Bearbeiten]

FTP[Bearbeiten]

HTTP[Bearbeiten]

Server[Bearbeiten]

IMAP[Bearbeiten]

JSON[Bearbeiten]

SMTP[Bearbeiten]

Source Code Management[Bearbeiten]

OS[Bearbeiten]

String Processing[Bearbeiten]

Comparing & Matching[Bearbeiten]

Copying[Bearbeiten]

Encoding[Bearbeiten]

Padding & Formatting[Bearbeiten]

Queries[Bearbeiten]


Stream Input/Output[Bearbeiten]

File Streams[Bearbeiten]

Stream Reading[Bearbeiten]

Socket Streams[Bearbeiten]

Internal Streams[Bearbeiten]

Stream Writing[Bearbeiten]

Time & Date[Bearbeiten]

  • Date [ GetDaysInYear]
    Get the number of days in the year which is represented by the given timestamp (365 or 366).

Tools[Bearbeiten]

  • Windows [ Open Document ]
    Ask the Windows shell to open a document. Will start the application that is associated with the file type (1.9.1).

Type Conversion[Bearbeiten]

  • Cast [ String To Any ]
    Convert a string-input to an any-output. Actually, no conversion is done here, this is a simple type cast.

Variables[Bearbeiten]


Back to Online Documentation

Go to Release Notes



Copyright © 2014-2024 eXept Software AG