#!/usr/bin/python # # Perforce Defect Tracking Integration Project # # # FAKE_P4D.PY -- FAKE PERFORCE CLIENT (OLD SERVER VERSION) # # Gareth Rees, Ravenbrook Limited, 2001-03-16 # # # 1. INTRODUCTION # # This script pretends to be a Perforce client executable that connects to a # Perforce server that is not supported by the P4DTI because its version is too # old. This allows the test_p4dti.py script to test that old Perforce server # versions are detected correctly and rejected with a suitable error message. # # The earliest supported server changelevel is 18974 (see replicator.py). # # The earliest supported client changelevel is 16895 (see p4.py). import getopt import marshal import sys # We have to fool p4.py into accepting us, so we fake a response to the -V # option that prints a message with a valid client changelevel. opts, args = getopt.getopt(sys.argv[1:], "VGu:p:P:c:") if ('-V','') in opts: print "Perforce - The Fast Software Configuration Management System." print "Copyright 1995, 2000 Perforce Software. All rights reserved." print "Rev. P4/FAKE/2000.1/16895 (2000/08/29)." else: marshal.dump({'code': 'info', 'data': "Server version: P4D/FAKE/2000.2/18973 (2000/12/18)"}, sys.stdout) # A. REFERENCES # # # B. DOCUMENT HISTORY # # 2001-03-16 GDR Created. # # # C. COPYRIGHT AND LICENCE # # This file is copyright (c) 2001 Perforce Software, Inc. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # # # $Id: //info.ravenbrook.com/project/p4dti/branch/2001-11-05/nt-service/test/fake_p4d.py#1 $