• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
f(int i)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 
g(int i)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