"MEMS"4#v(0"dedaol QGSM :DOOG">:#,_$a, v >0"daol ton did QGSM :DAB">:#,_$a,@ v < >3yfaaa**4*9a*+6+3*#vG00p0"yromem derahs eht detaerc G :DOOG">:#,_$a,v v < >0"=rorre ,yromem derahs eht niatbo ton dluoc G :DAB">:#,_$.a,@ v < >00g#vTf-#v_0"setyb 51 sa ezis swohs ytlcerroc T :DOOG">:#,_$a,v >0"setyb 51 sa ezis troper ton did T :DAB">:#,_$a, v >0"=rorre ,detcelfer T :DAB">:#,_$.a, v v < >1233500g0#vW0"krow ot deraeppa W :DOOG">:#,_$a,v >0"=rorre ,deliaf W :DAB">:#,_$.a, v v < >3500g0#vR3-#v_2-#v_1-#v_0"yltcerroc kcab setyb daer R :DOOG">:#,_$a, v > > >0"yltcerroc setyb eht daer ton did R :DAB">:#,_$a, v >0"=rorre ,detcelfer R :DAB">:#,_$.a, v v < >5e00g0#vW0"tcelfer ton did dne dnoyeb etirw ot gnitpmettA :DAB">:#,_$a, v >:3-#v_0"rorre tcerroc htiw detcelfer dne tsap gnitirW :DOOG">:#,_$a, v >0":rorre gnorw decudorp dne tsap gnitirW :DAB">:#,_$.a, v v < >5e00g0#vR0"tcelfer ton did dne dnoyeb daer ot gnitpmettA :DAB">:#,_$a, v >:3-#v_0"rorre tcerroc htiw detcelfer dne tsap gnidaeR :DOOG">:#,_$a,v >0":rorre gnorw decudorp dne tsap gnidaeR :DAB">:#,_$.a, v v < >00g#vK0"tnemgmes yromem derahs eht devomer K :DOOG">:#,_$a,@ >0"tnemges yromem derahs eht evomer ton did K :DAB">:#,_$.a,@ Expected Output: ---------------- GOOD: MSGQ loaded GOOD: G created the shared memory GOOD: T correclty shows size as 15 bytes GOOD: W appeared to work GOOD: R read bytes back correctly GOOD: Writing past end reflected with correct error GOOD: Reading past end reflected with correct error GOOD: K removed the shared memory semgment notes: The interpreter's handprint is used for the ipc key. If this key is already in use on your system the first test will fail. You can change the 3y on the line 4 to a key calculation instead.