Skip to content

Commit 757e2bb

Browse files
SiegeLordExSiegeLord
authored andcommitted
Add an install test to catch us breaking the installation code.
Fixes #503.
1 parent 7ca3a78 commit 757e2bb

File tree

2 files changed

+56
-1
lines changed

2 files changed

+56
-1
lines changed

.travis.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ before_install:
1313
export DISPLAY=:99.0;
1414
sh -e /etc/init.d/xvfb start;
1515
sudo apt-get update;
16-
sudo apt-get install -y libvorbis-dev libtheora-dev libphysfs-dev libdumb1-dev libflac-dev libpulse-dev libgtk2.0-dev pandoc libcurl4-nss-dev libenet-dev;
16+
sudo apt-get install -y libvorbis-dev libtheora-dev libphysfs-dev libdumb1-dev libflac-dev libpulse-dev libgtk2.0-dev pandoc libcurl4-nss-dev libenet-dev pulseaudio;
1717
elif [ `uname` = "Darwin" ]; then
1818
brew install cmake opusfile libvorbis freetype flac physfs;
1919
fi
@@ -34,6 +34,11 @@ script:
3434
. ../tests/grab_bitmap_suites.sh
3535
find ../tests -name '*.ini' | grep -v 'compressed' | xargs tests/test_driver | tee /tmp/test_out
3636
grep -q 'failed tests: 0' /tmp/test_out
37+
sudo make install
38+
sudo ldconfig
39+
gcc ../misc/install_test.c -o install_test $(pkg-config --cflags --libs allegro_image-debug-5 allegro_ttf-debug-5 allegro_acodec-debug-5 allegro_dialog-debug-5 allegro_primitives-debug-5 allegro_video-debug-5)
40+
pulseaudio -D
41+
./install_test
3742
elif [ `uname` = "Darwin" ]; then
3843
cmake .. -DWANT_SHADERS_GL=$WANT_SHADERS_GL -G Xcode
3944
xcodebuild

misc/install_test.c

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
* A small test program that you can compile and run to verify that Allegro was
3+
* installed correctly. It assumes you installed all the addons.
4+
*/
5+
6+
#include <allegro5/allegro.h>
7+
#include <allegro5/allegro_font.h>
8+
#include <allegro5/allegro_ttf.h>
9+
#include <allegro5/allegro_image.h>
10+
#include <allegro5/allegro_audio.h>
11+
#include <allegro5/allegro_acodec.h>
12+
#include <allegro5/allegro_native_dialog.h>
13+
#include <allegro5/allegro_primitives.h>
14+
#include <allegro5/allegro_video.h>
15+
#include <allegro5/allegro_color.h>
16+
#include <allegro5/allegro_physfs.h>
17+
#include <allegro5/allegro_memfile.h>
18+
19+
#include <stdio.h>
20+
21+
int main() {
22+
uint32_t version = al_get_allegro_version();
23+
int major = version >> 24;
24+
int minor = (version >> 16) & 255;
25+
int revision = (version >> 8) & 255;
26+
int release = version & 255;
27+
28+
fprintf(stderr, "Library version: %d.%d.%d.%d\n", major, minor, revision, release);
29+
fprintf(stderr, "Header version: %d.%d.%d.%d\n", ALLEGRO_VERSION, ALLEGRO_SUB_VERSION, ALLEGRO_WIP_VERSION, ALLEGRO_RELEASE_NUMBER);
30+
fprintf(stderr, "Header version string: %s\n", ALLEGRO_VERSION_STR);
31+
32+
if (!al_init()) {
33+
fprintf(stderr, "Failed to initialize Allegro, probably a header/shared library version mismatch.\n");
34+
return -1;
35+
}
36+
37+
#define INIT_CHECK(init_function, addon_name) do { if (!init_function()) { fprintf(stderr, "Failed to initialize the " addon_name " addon.\n"); return -1; } } while (0)
38+
39+
INIT_CHECK(al_init_font_addon, "font");
40+
INIT_CHECK(al_init_ttf_addon, "TTF");
41+
INIT_CHECK(al_init_image_addon, "image");
42+
INIT_CHECK(al_install_audio, "audio");
43+
INIT_CHECK(al_init_acodec_addon, "acodec");
44+
INIT_CHECK(al_init_native_dialog_addon, "native dialog");
45+
INIT_CHECK(al_init_primitives_addon, "primitives");
46+
INIT_CHECK(al_init_video_addon, "video");
47+
48+
fprintf(stderr, "Everything looks good!\n");
49+
return 0;
50+
}

0 commit comments

Comments
 (0)