summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-06-26 18:47:20 +0000
committerCarl Hetherington <carl@carlh.net>2012-06-26 18:47:20 +0000
commita50dd69c0ca39cc675da6d78e0fdbfea5581531f (patch)
treef6fd9a76dd472bb751fcbdf334b74dc41fbe6525
parent7031e1249512474af94b4765a634b8dcfa9a87d7 (diff)
Add test for loading sessions, and a session with a
rec-enabled track that currently crashes. git-svn-id: svn://localhost/ardour2/branches/3.0@12945 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/test/data/sessions/rec_enabled/instant.xml13
-rw-r--r--libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour188
-rw-r--r--libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour.bak158
-rw-r--r--libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history2
-rw-r--r--libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history.bak2
-rw-r--r--libs/ardour/test/load_sessions_test.cc28
-rw-r--r--libs/ardour/test/load_sessions_test.h29
-rw-r--r--libs/ardour/wscript1
8 files changed, 421 insertions, 0 deletions
diff --git a/libs/ardour/test/data/sessions/rec_enabled/instant.xml b/libs/ardour/test/data/sessions/rec_enabled/instant.xml
new file mode 100644
index 0000000000..99606ef585
--- /dev/null
+++ b/libs/ardour/test/data/sessions/rec_enabled/instant.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<instant>
+ <Editor id="11" mixer-width="Wide" zoom-focus="ZoomFocusPlayhead" zoom="1685.997648" snap-to="SnapToBeat" snap-mode="SnapOff" internal-snap-to="SnapToBeat" internal-snap-mode="SnapOff" pre-internal-snap-to="SnapToBeat" pre-internal-snap-mode="SnapOff" edit-point="EditAtPlayhead" playhead="0" left-frame="0" y-origin="0.000000" show-measures="yes" maximised="no" follow-playhead="no" stationary-playhead="no" region-list-sort-type="ByEndInFile" mouse-mode="MouseObject" internal-edit="no" join-object-range="no" show-editor-mixer="yes" show-editor-list="yes" editor-list-page="0" show-marker-lines="no" nudge-clock-value="240000">
+ <geometry x-size="1366" y-size="714" x-pos="0" y-pos="27" edit-horizontal-pane-pos="972" notebook-shrunk="0" edit-vertical-pane-pos="498"/>
+ <Buttons>
+ <Press/>
+ <Release/>
+ </Buttons>
+ <Selection/>
+ <RegionList sort-type="ByEndInFile" sort-ascending="yes" show-all="no" show-automatic-regions="yes"/>
+ </Editor>
+ <Mixer narrow-strips="no" show-mixer="no"/>
+</instant>
diff --git a/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour b/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour
new file mode 100644
index 0000000000..fe34c9b29e
--- /dev/null
+++ b/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Session version="3001" name="rec_enabled" sample-rate="48000" id-counter="125" event-counter="0">
+ <Config>
+ <Option name="xfade-model" value="FullCrossfade"/>
+ <Option name="xfade-choice" value="ConstantPowerMinus3dB"/>
+ <Option name="auto-xfade" value="1"/>
+ <Option name="short-xfade-seconds" value="0.015"/>
+ <Option name="destructive-xfade-msecs" value="2"/>
+ <Option name="use-region-fades" value="1"/>
+ <Option name="show-region-fades" value="1"/>
+ <Option name="native-file-data-format" value="FormatFloat"/>
+ <Option name="native-file-header-format" value="WAVE"/>
+ <Option name="auto-play" value="0"/>
+ <Option name="auto-return" value="0"/>
+ <Option name="auto-input" value="1"/>
+ <Option name="punch-in" value="0"/>
+ <Option name="punch-out" value="0"/>
+ <Option name="subframes-per-frame" value="100"/>
+ <Option name="timecode-format" value="timecode_30"/>
+ <Option name="raid-path" value=""/>
+ <Option name="audio-search-path" value=""/>
+ <Option name="midi-search-path" value=""/>
+ <Option name="auditioner-output-left" value="default"/>
+ <Option name="auditioner-output-right" value="default"/>
+ <Option name="timecode-source-is-synced" value="1"/>
+ <Option name="jack-time-master" value="1"/>
+ <Option name="use-video-sync" value="0"/>
+ <Option name="video-pullup" value="0"/>
+ <Option name="show-summary" value="1"/>
+ <Option name="show-group-tabs" value="1"/>
+ <Option name="external-sync" value="0"/>
+ <Option name="sync-source" value="JACK"/>
+ <Option name="insert-merge-policy" value="InsertMergeRelax"/>
+ <Option name="timecode-offset" value="0"/>
+ <Option name="timecode-offset-negative" value="1"/>
+ <Option name="glue-new-markers-to-bars-and-beats" value="0"/>
+ <Option name="midi-copy-is-fork" value="0"/>
+ <Option name="glue-new-regions-to-bars-and-beats" value="0"/>
+ </Config>
+ <Metadata/>
+ <Sources/>
+ <Regions/>
+ <Locations>
+ <Location id="86" name="Loop" start="0" end="1" flags="IsAutoLoop,IsHidden" locked="no" position-lock-style="AudioTime"/>
+ <Location id="87" name="Punch" start="0" end="1" flags="IsAutoPunch,IsHidden" locked="no" position-lock-style="AudioTime"/>
+ </Locations>
+ <Bundles/>
+ <Routes>
+ <Route id="88" name="Audio 1" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterInput" order-keys="EditorSort=0:MixerSort=0" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal">
+ <IO name="Audio 1" id="105" direction="Input" default-type="audio" user-latency="0">
+ <Port type="audio" name="Audio 1/audio_in 1">
+ <Connection other="system:capture_1"/>
+ </Port>
+ </IO>
+ <IO name="Audio 1" id="106" direction="Output" default-type="audio" user-latency="0">
+ <Port type="audio" name="Audio 1/audio_out 1">
+ <Connection other="master/audio_in 1"/>
+ </Port>
+ <Port type="audio" name="Audio 1/audio_out 2">
+ <Connection other="master/audio_in 2"/>
+ </Port>
+ </IO>
+ <Controllable name="solo" id="90" flags="Toggle" value="0.000000000000"/>
+ <Controllable name="mute" id="92" flags="Toggle" value="0.000000000000"/>
+ <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/>
+ <Pannable>
+ <Controllable name="pan-azimuth" id="96" flags="" value="0.500000000000"/>
+ <Controllable name="pan-width" id="100" flags="" value="0.000000000000"/>
+ <Controllable name="pan-elevation" id="98" flags="" value="0.000000000000"/>
+ <Controllable name="pan-frontback" id="102" flags="" value="0.000000000000"/>
+ <Controllable name="pan-lfe" id="104" flags="" value="0.000000000000"/>
+ <Automation/>
+ </Pannable>
+ <Processor id="110" name="Meter" active="yes" user-latency="0" type="meter"/>
+ <Processor id="107" name="Amp" active="yes" user-latency="0" type="amp">
+ <Controllable name="gaincontrol" id="109" flags="GainLike" value="1.000000000000"/>
+ </Processor>
+ <Processor id="111" name="Audio 1" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 1" type="main-outs" role="Main">
+ <PannerShell bypassed="no">
+ <Panner type="Mono to Stereo Panner"/>
+ </PannerShell>
+ </Processor>
+ <Controllable name="recenable" id="113" flags="Toggle" value="1.000000000000"/>
+ <Diskstream flags="Recordable" playlist="Audio 1.1" name="Audio 1" id="115" speed="1.000000" capture-alignment="Automatic" channels="1"/>
+ </Route>
+ <Route id="21" name="master" default-type="audio" flags="MasterOut" active="yes" phase-invert="00" denormal-protection="no" meter-point="MeterPostFader" order-keys="EditorSort=318:MixerSort=318" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no">
+ <IO name="master" id="38" direction="Input" default-type="audio" user-latency="0">
+ <Port type="audio" name="master/audio_in 1">
+ <Connection other="Audio 1/audio_out 1"/>
+ </Port>
+ <Port type="audio" name="master/audio_in 2">
+ <Connection other="Audio 1/audio_out 2"/>
+ </Port>
+ </IO>
+ <IO name="master" id="39" direction="Output" default-type="audio" user-latency="0">
+ <Port type="audio" name="master/audio_out 1">
+ <Connection other="system:playback_1"/>
+ </Port>
+ <Port type="audio" name="master/audio_out 2">
+ <Connection other="system:playback_2"/>
+ </Port>
+ </IO>
+ <Controllable name="solo" id="23" flags="Toggle" value="0.000000000000"/>
+ <Controllable name="mute" id="25" flags="Toggle" value="0.000000000000"/>
+ <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/>
+ <Pannable>
+ <Controllable name="pan-azimuth" id="29" flags="" value="0.500000000000"/>
+ <Controllable name="pan-width" id="33" flags="" value="1.000000000000"/>
+ <Controllable name="pan-elevation" id="31" flags="" value="0.000000000000"/>
+ <Controllable name="pan-frontback" id="35" flags="" value="0.000000000000"/>
+ <Controllable name="pan-lfe" id="37" flags="" value="0.000000000000"/>
+ <Automation/>
+ </Pannable>
+ <Processor id="40" name="Amp" active="yes" user-latency="0" type="amp">
+ <Controllable name="gaincontrol" id="42" flags="GainLike" value="1.000000000000"/>
+ </Processor>
+ <Processor id="43" name="Meter" active="yes" user-latency="0" type="meter"/>
+ <Processor id="44" name="master" active="yes" user-latency="0" own-input="yes" own-output="no" output="master" type="main-outs" role="Main">
+ <PannerShell bypassed="no">
+ <Panner type="Equal Power Stereo"/>
+ </PannerShell>
+ </Processor>
+ </Route>
+ </Routes>
+ <Playlists>
+ <Playlist id="116" name="Audio 1.1" type="audio" orig-track-id="88" frozen="no" combine-ops="0"/>
+ </Playlists>
+ <UnusedPlaylists/>
+ <RouteGroups/>
+ <Click>
+ <IO name="click" id="46" direction="Output" default-type="audio" user-latency="0">
+ <Port type="audio" name="click/audio_out 1">
+ <Connection other="system:playback_1"/>
+ </Port>
+ <Port type="audio" name="click/audio_out 2">
+ <Connection other="system:playback_2"/>
+ </Port>
+ </IO>
+ <Processor id="47" name="Amp" active="yes" user-latency="0" type="amp">
+ <Controllable name="gaincontrol" id="49" flags="GainLike" value="1.000000000000"/>
+ </Processor>
+ </Click>
+ <Speakers>
+ <Speaker azimuth="0" elevation="0" distance="1"/>
+ <Speaker azimuth="180" elevation="0" distance="0"/>
+ </Speakers>
+ <TempoMap>
+ <Tempo start="1|1|0" beats-per-minute="120.000000" note-type="4.000000" movable="no"/>
+ <Meter start="1|1|0" note-type="4.000000" divisions-per-bar="4.000000" movable="no"/>
+ </TempoMap>
+ <ControlProtocols>
+ <Protocol name="Open Sound Control (OSC)" active="no"/>
+ <Protocol name="Generic MIDI" feedback="0" feedback-interval="10000" active="yes">
+ <Controls/>
+ </Protocol>
+ <Protocol name="Mackie" bank="0" ipmidi-base="21928" device-profile="" device-name="Mackie Control Universal Pro" active="yes"/>
+ </ControlProtocols>
+ <Extra>
+ <UI>
+ <Window name="R-21-40" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
+ <Window name="R-21-43" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
+ <Window name="R-21-44" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
+ <Window name="M-21-40" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
+ <Window name="M-21-43" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
+ <Window name="M-21-44" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
+ <Window name="M-88-107" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
+ <Window name="M-88-110" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
+ <Window name="M-88-111" visible="no" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
+ <GUIObjectState>
+ <Object id="route 21" color="29808:46137:30836"/>
+ <Object id="rtav 21" height="62" visible="1"/>
+ <Object id="automation 42" height="62" visible="0"/>
+ <Object id="automation 29" height="62" visible="0"/>
+ <Object id="automation 33" height="62" visible="0"/>
+ <Object id="strip 21" visible="1" strip-width="Wide">
+ <Object id="processor 40"/>
+ </Object>
+ <Object id="route 88" color="8025:42322:17800"/>
+ <Object id="rtav 88" height="62" visible="1"/>
+ <Object id="automation 109" height="62" visible="0"/>
+ <Object id="automation 96" height="62" visible="0"/>
+ <Object id="strip 88" visible="1">
+ <Object id="processor 107"/>
+ </Object>
+ </GUIObjectState>
+ </UI>
+ </Extra>
+</Session>
diff --git a/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour.bak b/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour.bak
new file mode 100644
index 0000000000..106de1153d
--- /dev/null
+++ b/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.ardour.bak
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Session version="3001" name="rec_enabled" sample-rate="48000" id-counter="121" event-counter="0">
+ <Config>
+ <Option name="xfade-model" value="FullCrossfade"/>
+ <Option name="xfade-choice" value="ConstantPowerMinus3dB"/>
+ <Option name="auto-xfade" value="1"/>
+ <Option name="short-xfade-seconds" value="0.015"/>
+ <Option name="destructive-xfade-msecs" value="2"/>
+ <Option name="use-region-fades" value="1"/>
+ <Option name="show-region-fades" value="1"/>
+ <Option name="native-file-data-format" value="FormatFloat"/>
+ <Option name="native-file-header-format" value="WAVE"/>
+ <Option name="auto-play" value="0"/>
+ <Option name="auto-return" value="0"/>
+ <Option name="auto-input" value="1"/>
+ <Option name="punch-in" value="0"/>
+ <Option name="punch-out" value="0"/>
+ <Option name="subframes-per-frame" value="100"/>
+ <Option name="timecode-format" value="timecode_30"/>
+ <Option name="raid-path" value=""/>
+ <Option name="audio-search-path" value=""/>
+ <Option name="midi-search-path" value=""/>
+ <Option name="auditioner-output-left" value="default"/>
+ <Option name="auditioner-output-right" value="default"/>
+ <Option name="timecode-source-is-synced" value="1"/>
+ <Option name="jack-time-master" value="1"/>
+ <Option name="use-video-sync" value="0"/>
+ <Option name="video-pullup" value="0"/>
+ <Option name="show-summary" value="1"/>
+ <Option name="show-group-tabs" value="1"/>
+ <Option name="external-sync" value="0"/>
+ <Option name="sync-source" value="JACK"/>
+ <Option name="insert-merge-policy" value="InsertMergeRelax"/>
+ <Option name="timecode-offset" value="0"/>
+ <Option name="timecode-offset-negative" value="1"/>
+ <Option name="glue-new-markers-to-bars-and-beats" value="0"/>
+ <Option name="midi-copy-is-fork" value="0"/>
+ <Option name="glue-new-regions-to-bars-and-beats" value="0"/>
+ </Config>
+ <Metadata/>
+ <Sources/>
+ <Regions/>
+ <Locations>
+ <Location id="86" name="Loop" start="0" end="1" flags="IsAutoLoop,IsHidden" locked="no" position-lock-style="AudioTime"/>
+ <Location id="87" name="Punch" start="0" end="1" flags="IsAutoPunch,IsHidden" locked="no" position-lock-style="AudioTime"/>
+ </Locations>
+ <Bundles/>
+ <Routes>
+ <Route id="88" name="Audio 1" default-type="audio" active="yes" phase-invert="0" denormal-protection="no" meter-point="MeterPostFader" order-keys="" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no" monitoring="" saved-meter-point="MeterPostFader" mode="Normal">
+ <IO name="Audio 1" id="105" direction="Input" default-type="audio" user-latency="0">
+ <Port type="audio" name="Audio 1/audio_in 1">
+ <Connection other="system:capture_1"/>
+ </Port>
+ </IO>
+ <IO name="Audio 1" id="106" direction="Output" default-type="audio" user-latency="0">
+ <Port type="audio" name="Audio 1/audio_out 1">
+ <Connection other="master/audio_in 1"/>
+ </Port>
+ <Port type="audio" name="Audio 1/audio_out 2">
+ <Connection other="master/audio_in 2"/>
+ </Port>
+ </IO>
+ <Controllable name="solo" id="90" flags="Toggle" value="0.000000000000"/>
+ <Controllable name="mute" id="92" flags="Toggle" value="0.000000000000"/>
+ <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/>
+ <Pannable>
+ <Controllable name="pan-azimuth" id="96" flags="" value="0.500000000000"/>
+ <Controllable name="pan-width" id="100" flags="" value="0.000000000000"/>
+ <Controllable name="pan-elevation" id="98" flags="" value="0.000000000000"/>
+ <Controllable name="pan-frontback" id="102" flags="" value="0.000000000000"/>
+ <Controllable name="pan-lfe" id="104" flags="" value="0.000000000000"/>
+ <Automation/>
+ </Pannable>
+ <Processor id="107" name="Amp" active="yes" user-latency="0" type="amp">
+ <Controllable name="gaincontrol" id="109" flags="GainLike" value="1.000000000000"/>
+ </Processor>
+ <Processor id="110" name="Meter" active="yes" user-latency="0" type="meter"/>
+ <Processor id="111" name="Audio 1" active="yes" user-latency="0" own-input="yes" own-output="no" output="Audio 1" type="main-outs" role="Main">
+ <PannerShell bypassed="no">
+ <Panner type="Mono to Stereo Panner"/>
+ </PannerShell>
+ </Processor>
+ <Controllable name="recenable" id="113" flags="Toggle" value="0.000000000000"/>
+ <Diskstream flags="Recordable" playlist="Audio 1.1" name="Audio 1" id="115" speed="1.000000" capture-alignment="Automatic" channels="1"/>
+ </Route>
+ <Route id="21" name="master" default-type="audio" flags="MasterOut" active="yes" phase-invert="00" denormal-protection="no" meter-point="MeterPostFader" order-keys="EditorSort=318:MixerSort=318" self-solo="no" soloed-by-upstream="0" soloed-by-downstream="0" solo-isolated="no" solo-safe="no">
+ <IO name="master" id="38" direction="Input" default-type="audio" user-latency="0">
+ <Port type="audio" name="master/audio_in 1">
+ <Connection other="Audio 1/audio_out 1"/>
+ </Port>
+ <Port type="audio" name="master/audio_in 2">
+ <Connection other="Audio 1/audio_out 2"/>
+ </Port>
+ </IO>
+ <IO name="master" id="39" direction="Output" default-type="audio" user-latency="0">
+ <Port type="audio" name="master/audio_out 1">
+ <Connection other="system:playback_1"/>
+ </Port>
+ <Port type="audio" name="master/audio_out 2">
+ <Connection other="system:playback_2"/>
+ </Port>
+ </IO>
+ <Controllable name="solo" id="23" flags="Toggle" value="0.000000000000"/>
+ <Controllable name="mute" id="25" flags="Toggle" value="0.000000000000"/>
+ <MuteMaster mute-point="PreFader,PostFader,Listen,Main" muted="no"/>
+ <Pannable>
+ <Controllable name="pan-azimuth" id="29" flags="" value="0.500000000000"/>
+ <Controllable name="pan-width" id="33" flags="" value="1.000000000000"/>
+ <Controllable name="pan-elevation" id="31" flags="" value="0.000000000000"/>
+ <Controllable name="pan-frontback" id="35" flags="" value="0.000000000000"/>
+ <Controllable name="pan-lfe" id="37" flags="" value="0.000000000000"/>
+ <Automation/>
+ </Pannable>
+ <Processor id="40" name="Amp" active="yes" user-latency="0" type="amp">
+ <Controllable name="gaincontrol" id="42" flags="GainLike" value="1.000000000000"/>
+ </Processor>
+ <Processor id="43" name="Meter" active="yes" user-latency="0" type="meter"/>
+ <Processor id="44" name="master" active="yes" user-latency="0" own-input="yes" own-output="no" output="master" type="main-outs" role="Main">
+ <PannerShell bypassed="no">
+ <Panner type="Equal Power Stereo"/>
+ </PannerShell>
+ </Processor>
+ </Route>
+ </Routes>
+ <Playlists>
+ <Playlist id="116" name="Audio 1.1" type="audio" orig-track-id="88" frozen="no" combine-ops="0"/>
+ </Playlists>
+ <UnusedPlaylists/>
+ <RouteGroups/>
+ <Click>
+ <IO name="click" id="46" direction="Output" default-type="audio" user-latency="0">
+ <Port type="audio" name="click/audio_out 1">
+ <Connection other="system:playback_1"/>
+ </Port>
+ <Port type="audio" name="click/audio_out 2">
+ <Connection other="system:playback_2"/>
+ </Port>
+ </IO>
+ <Processor id="47" name="Amp" active="yes" user-latency="0" type="amp">
+ <Controllable name="gaincontrol" id="49" flags="GainLike" value="1.000000000000"/>
+ </Processor>
+ </Click>
+ <Speakers>
+ <Speaker azimuth="0" elevation="0" distance="1"/>
+ <Speaker azimuth="180" elevation="0" distance="0"/>
+ </Speakers>
+ <TempoMap>
+ <Tempo start="1|1|0" beats-per-minute="120.000000" note-type="4.000000" movable="no"/>
+ <Meter start="1|1|0" note-type="4.000000" divisions-per-bar="4.000000" movable="no"/>
+ </TempoMap>
+ <ControlProtocols>
+ <Protocol name="Open Sound Control (OSC)" active="no"/>
+ <Protocol name="Generic MIDI" feedback="0" feedback-interval="10000" active="yes">
+ <Controls/>
+ </Protocol>
+ <Protocol name="Mackie" bank="0" ipmidi-base="21928" device-profile="" device-name="Mackie Control Universal Pro" active="yes"/>
+ </ControlProtocols>
+</Session>
diff --git a/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history b/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history
new file mode 100644
index 0000000000..6dd2506a89
--- /dev/null
+++ b/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<UndoHistory/>
diff --git a/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history.bak b/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history.bak
new file mode 100644
index 0000000000..6dd2506a89
--- /dev/null
+++ b/libs/ardour/test/data/sessions/rec_enabled/rec_enabled.history.bak
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<UndoHistory/>
diff --git a/libs/ardour/test/load_sessions_test.cc b/libs/ardour/test/load_sessions_test.cc
new file mode 100644
index 0000000000..73cc506430
--- /dev/null
+++ b/libs/ardour/test/load_sessions_test.cc
@@ -0,0 +1,28 @@
+/*
+ Copyright (C) 2012 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "load_sessions_test.h"
+#include "test_util.h"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (LoadSessionsTest);
+
+void
+LoadSessionsTest::loadSessions ()
+{
+ load_session ("../libs/ardour/test/data/sessions/rec_enabled", "rec_enabled");
+}
diff --git a/libs/ardour/test/load_sessions_test.h b/libs/ardour/test/load_sessions_test.h
new file mode 100644
index 0000000000..2c590dafbe
--- /dev/null
+++ b/libs/ardour/test/load_sessions_test.h
@@ -0,0 +1,29 @@
+/*
+ Copyright (C) 2012 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "audio_region_test.h"
+
+class LoadSessionsTest : public CppUnit::TestFixture
+{
+ CPPUNIT_TEST_SUITE (LoadSessionsTest);
+ CPPUNIT_TEST (loadSessions);
+ CPPUNIT_TEST_SUITE_END ();
+
+public:
+ void loadSessions ();
+};
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
index 4c05af8c77..04f67f7eb1 100644
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -442,6 +442,7 @@ def build(bld):
test/control_surfaces_test.cc
test/combine_regions_test.cc
test/region_naming_test.cc
+ test/load_sessions_test.cc
test/mtdm_test.cc
test/testrunner.cc
'''.split()