Assert: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
(Created page with "== Assert == A runtime assertion library , built on top of LogicLib. == Usage == Binary assertions (works with all LogicLib operators): ${Assert} $R0 == "expected" "values match" ${Assert} $R0 != "" "not empty" ${Assert} $R0 ${StartsWith} "Hello" "starts with Hello" ${Assert} $R0 ${Contains} "world" "contains world" Negated assertions: ${AssertNot} $R0 == "bad" "must not be bad" ${Assert...")
 
(No difference)

Latest revision as of 23:47, 27 February 2026

Assert

A runtime assertion library , built on top of LogicLib.

Usage

Binary assertions (works with all LogicLib operators):

   ${Assert} $R0 == "expected"             "values match"
   ${Assert} $R0 != ""                     "not empty"
   ${Assert} $R0 ${StartsWith} "Hello"     "starts with Hello"
   ${Assert} $R0 ${Contains} "world"       "contains world"

Negated assertions:

   ${AssertNot} $R0 == "bad"               "must not be bad"
   ${AssertNot} $R0 ${Contains} "error"    "no errors"

Unary assertions (prefix-style LogicLib operators):

   ${Assert}    ${FileExists} "$INSTDIR\app.exe"   "app installed"
   ${AssertNot} ${FileExists} "$TEMP\leftover"     "no leftovers"

Summary (prints totals, sets ErrorLevel 1 on failure):

   ${AssertSummary}

Compile-time assertions:

   ${AssertDefined}   MY_VERSION
   ${AssertUndefined} DEPRECATED_FLAG

Verbosity:

Define __ASSERT_VERBOSITY__ before including Assert.nsh. 0 = silent, 1 = errors only, 2 = all results (default)

   !define __ASSERT_VERBOSITY__ 1
   !include "Assert.nsh"

Fail-fast:

Define __ASSERT_FAILFAST__ to abort the installer on the first failure. Sets ErrorLevel 1 before calling Abort.

   !define __ASSERT_FAILFAST__
   !include "Assert.nsh"

Links