| /* |
| * Copyright 2017 The Emscripten Authors. All rights reserved. |
| * Emscripten is available under two separate licenses, the MIT license and the |
| * University of Illinois/NCSA Open Source License. Both these licenses can be |
| * found in the LICENSE file. |
| */ |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <assert.h> |
| #ifdef __EMSCRIPTEN__ |
| #include <emscripten.h> |
| #include <AL/al.h> |
| #include <AL/alc.h> |
| #else |
| #include "../system/include/AL/al.h" |
| #include "../system/include/AL/alc.h" |
| #endif |
| |
| ALCdevice* device = NULL; |
| ALCcontext* context = NULL; |
| |
| int main(int argc, char* argv[]) { |
| // |
| // Setup the AL context. |
| // |
| device = alcOpenDevice(NULL); |
| |
| // Request an invalid enum to generate an ALC error |
| int value = 0; |
| alcGetIntegerv(device, 0, 1, &value); |
| assert(alcGetError(device) == ALC_INVALID_ENUM); |
| // Check that the error is reset after reading it. |
| assert(alcGetError(device) == ALC_NO_ERROR); |
| |
| context = alcCreateContext(device, NULL); |
| alcMakeContextCurrent(context); |
| |
| // Request an invalid enum to generate an AL error |
| alGetFloat(0); |
| assert(alGetError() == AL_INVALID_ENUM); |
| // Check that the error is reset after reading it. |
| assert(alGetError() == AL_NO_ERROR); |
| |
| alcMakeContextCurrent(NULL); |
| alcDestroyContext(context); |
| alcCloseDevice(device); |
| |
| #ifdef __EMSCRIPTEN__ |
| REPORT_RESULT(1); |
| #endif |
| } |
| |