#include <assert.h>
#include <curl/curl.h>

size_t data(void *buf, size_t size, size_t nmemb, void *p) {
	return size * nmemb;
}

void perform(CURL* curl, const long ts, const long expected) {
	curl_easy_setopt(curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
	curl_easy_setopt(curl, CURLOPT_TIMEVALUE, ts);

	CURLcode success = curl_easy_perform(curl);
	assert(success == CURLE_OK);

	long unmet = 0;
	curl_easy_getinfo(curl, CURLINFO_CONDITION_UNMET, &unmet);

	assert(unmet == expected);
}

int main(int argc, char *argv[]) {
	CURL *curl = curl_easy_init();

	curl_easy_setopt(curl, CURLOPT_URL, "http://curl.haxx.se");
	/* curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); */
	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, data);

	perform(curl, 1566210680, 1); /* expect UNMET == 1 */
	perform(curl, 1, 0);          /* expect UNMET == 0 */

	return 0;
}

