Home | History | Annotate | Download | only in tests
      1 ///////////////////////////////////////////////////////////////////////////////
      2 //
      3 // Copyright (c) 2015 Microsoft Corporation. All rights reserved.
      4 //
      5 // This code is licensed under the MIT License (MIT).
      6 //
      7 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      8 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      9 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     10 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     11 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     12 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     13 // THE SOFTWARE.
     14 //
     15 ///////////////////////////////////////////////////////////////////////////////
     16 
     17 #include <catch/catch.hpp>
     18 
     19 #include <gsl/gsl>
     20 
     21 using namespace gsl;
     22 
     23 int f(int i)
     24 {
     25     Expects(i > 0 && i < 10);
     26     return i;
     27 }
     28 
     29 TEST_CASE("expects")
     30 {
     31     CHECK(f(2) == 2);
     32     CHECK_THROWS_AS(f(10), fail_fast);
     33 }
     34 
     35 int g(int i)
     36 {
     37     i++;
     38     Ensures(i > 0 && i < 10);
     39     return i;
     40 }
     41 
     42 TEST_CASE("ensures")
     43 {
     44     CHECK(g(2) == 3);
     45     CHECK_THROWS_AS(g(9), fail_fast);
     46 }
     47