129ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow// -*- C++ -*-
229ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow//===----------------------- nth_element.cpp ------------------------------===//
329ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow//
429ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow//                     The LLVM Compiler Infrastructure
529ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow//
629ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow// This file is dual licensed under the MIT and the University of Illinois Open
729ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow// Source Licenses. See LICENSE.TXT for details.
829ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow//
929ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow//===----------------------------------------------------------------------===//
1029ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow
1129ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow// XFAIL
1229ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow
1329ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow#include "fuzzing.h"
1429ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow#include <cassert>
1529ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow#include <cstring> // for strlen
1629ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow
1729ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clowconst char * test_cases[] = {
1829ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow	"",
1929ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow	"s",
2029ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow	"bac",
2129ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow	"bacasf"
2229ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow	"lkajseravea",
2329ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow	"adsfkajdsfjkas;lnc441324513,34535r34525234"
2429ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow	};
2529ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow
2629ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clowconst size_t k_num_tests = sizeof(test_cases)/sizeof(test_cases[0]);
2729ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow
2829ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow
2929ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clowint main ()
3029ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow{
3129ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow	for (size_t i = 0; i < k_num_tests; ++i)
3229ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow		{
3329ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow		const size_t   size = std::strlen(test_cases[i]);
3429ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow		const uint8_t *data = (const uint8_t *) test_cases[i];
3529ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow		assert(0 == fuzzing::nth_element(data, size));
3629ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow		}
3729ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow	return 0;
3829ae2ba6563a9b74bedc9dfd0c5214722e008caaMarshall Clow}
39