Inseguendo Fagiani Selvatici: Partial Order Reduction for Guarded Command Languages Frank S. de Boer CWI, Amsterdam, the Netherlands
[email protected] Einar Broch Johnsen Department of Informatics, University of Oslo, Oslo, Norway einarj@ifi.uio.no Rudolf Schlatte Department of Informatics, University of Oslo, Oslo, Norway rudi@ifi.uio.no S. Lizeth Tapia Tarifa Department of Informatics, University of Oslo, Oslo, Norway sltarifa@ifi.uio.no Lars Tveito Department of Informatics, University of Oslo, Oslo, Norway larstvei@ifi.uio.no Abstract This paper presents a method for testing whether objects in actor languages and active object languages exhibit locally deterministic behavior. We investigate such a method for a class of guarded command programs, abstracting from object-oriented features like method calls but focusing on cooperative scheduling of dynamically spawned processes executing in parallel. The proposed method can answer questions such as whether all permutations of an execution trace are equivalent, by generating candidate traces for testing which may lead to different final states. To prune the set of candidate traces, we employ partial order reduction. To further reduce the set, we introduce an analysis technique to decide whether a generated trace is schedulable. Schedulability cannot be decided for guarded commands using standard dependence and interference relations because guard enabledness is non-monotonic. To solve this problem, we use concolic execution to produce linearized symbolic traces of the executed program, which