1/*
2 * Copyright 2014, Michael Ellerman, IBM Corp.
3 * Licensed under GPLv2.
4 */
5
6#include <stdio.h>
7#include <stdlib.h>
8
9#include "event.h"
10#include "utils.h"
11
12#define MALLOC_SIZE     (0x10000 * 10)  /* Ought to be enough .. */
13
14/*
15 * Tests that the L3 bank handling is correct. We fixed it in commit e9aaac1.
16 */
17static int l3_bank_test(void)
18{
19	struct event event;
20	char *p;
21	int i;
22
23	p = malloc(MALLOC_SIZE);
24	FAIL_IF(!p);
25
26	event_init(&event, 0x84918F);
27
28	FAIL_IF(event_open(&event));
29
30	for (i = 0; i < MALLOC_SIZE; i += 0x10000)
31		p[i] = i;
32
33	event_read(&event);
34	event_report(&event);
35
36	FAIL_IF(event.result.running == 0);
37	FAIL_IF(event.result.enabled == 0);
38
39	event_close(&event);
40	free(p);
41
42	return 0;
43}
44
45int main(void)
46{
47	return test_harness(l3_bank_test, "l3_bank_test");
48}
49