test.c revision 2c09187ba941e24577e3134adeacca97cc8b0ea4
16eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette/* 26eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * Copyright (C) 2016 The Android Open Source Project 36eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * 46eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * Licensed under the Apache License, Version 2.0 (the "License"); 56eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * you may not use this file except in compliance with the License. 66eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * You may obtain a copy of the License at 76eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * 86eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * http://www.apache.org/licenses/LICENSE-2.0 96eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * 106eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * Unless required by applicable law or agreed to in writing, software 116eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * distributed under the License is distributed on an "AS IS" BASIS, 126eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * See the License for the specific language governing permissions and 146eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette * limitations under the License. 156eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette */ 166eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette 176eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette// Test the minimal perfect hash generator function 186eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette 196eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette#include <stdio.h> 206eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette#include <stdlib.h> 216eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette#include <SLES/OpenSLES.h> 22049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viverette#include "MPH.h" 23049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viverette 246eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viveretteextern int IID_to_MPH(const SLInterfaceID iid); 25049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viveretteextern const struct SLInterfaceID_ SL_IID_array[MPH_MAX]; 266eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette 276eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viveretteint main(int argc, char **argv) 286eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette{ 296eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette int i; 306eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette for (i = 0; i < MPH_MAX; i++) { 316eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette const struct SLInterfaceID_ *original = &SL_IID_array[i]; 326eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette // test the address-based lookup 336eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette int MPH = IID_to_MPH(original); 34049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viverette if (MPH != i) { 35049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viverette fprintf(stderr, "error: IID_to_MPH(SL_IID_array) = %d != %d\n", MPH, i); 366eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette return EXIT_FAILURE; 376eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette } 386eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette // test the content-based lookup 396eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette const struct SLInterfaceID_ copy = *original; 406eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette MPH = IID_to_MPH(©); 416eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette if (MPH != i) { 42049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viverette fprintf(stderr, "error: IID_to_MPH(copy) = %d != %d\n", MPH, i); 436eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette return EXIT_FAILURE; 446eb3cdf42d5382aef6b6a6afd7c305dbc27885b9Alan Viverette } 45049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viverette } 46049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viverette printf("OK\n"); 47049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viverette return EXIT_SUCCESS; 48049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viverette} 49049a692ac952be43d5fcd975ec6d394ca058c9d8Alan Viverette