beam: more hooks for interactive debugging
beam: more hooks for interactive debugging

This inserts low-level hooks for interactive step-by-step debugging.
Hooks are triggered by setting the *TEST* environment variable.

This is particularly useful for tracking down file descriptor leaks,
double-closing, or other issues which are difficult to debug with
the usual toolbox.

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)

bdwill/docker.github.io,docker/docker.github.io,LuisBosquez/docker.github.io,thaJeztah/docker.github.io,docker-zh/docker.github.io,aidora/pisces,joaofnfernandes/docker.github.io,aduermael/docker.github.io,barais/swarm,MHBauer/swarm,bdwill/docker.github.io,BSWANG/denverdino.github.io,abronan/swarm,atlassian/swarm,sfsmithcha/swarm,joaofnfernandes/docker.github.io,Spritekin/swarm,ezrasilvera/SwarmACLs,joeuo/docker.github.io,krystism/swarm,gonkulator/swarm,FollowMyDev/swarm,joeuo/docker.github.io,parapsyche/swarm,johnstep/docker.github.io,JimGalasyn/docker.github.io,aduermael/docker.github.io,srikalyan/swarm,denverdino/docker.github.io,shin-/docker.github.io,mgoelzer/swarm,EderRoger/swarm,jimenez/swarm,everett-toews/swarm,gdevillele/docker.github.io,ehazlett/swarm,rutulpatel/swarm,gdevillele/docker.github.io,tnachen/swarm,rancher/swarm,jzwlqx/denverdino.github.io,kunalkushwaha/swarm,menglingwei/denverdino.github.io,moxiegirl/swarm,abronan/swarm,SivagnanamCiena/swarm,menglingwei/denverdino.github.io,mavenugo/swarm,JimGalasyn/docker.github.io,marsmensch/swarm,gdevillele/docker.github.io,ejholmes/swarm,rillig/docker.github.io,bsmr-docker/swarm,yp-engineering/swarm,sanscontext/docker.github.io,akerbis/armhf-swarm,johnstep/docker.github.io,ricca742/swarm,swarm-hooks/swarm,raoofm/swarm,unodba/swarm,linecheng/swarm,denverdino/denverdino.github.io,londoncalling/docker.github.io,jimmyxian/swarm,NunoEdgarGub1/swarm,tranceitionalMynd/swarm,cpuguy83/swarm,docker-zh/docker.github.io,thaJeztah/docker.github.io,vlajos/swarm,sanscontext/docker.github.io,qianzhangxa/swarm,shin-/docker.github.io,schmunk42/swarm,cpuguy83/swarm,shin-/docker.github.io,doronp/swarm,denverdino/denverdino.github.io,mrjana/swarm,shot/swarm,kyhavlov/swarm,mountkin/swarm,jdamick/swarm,jeffjen/swarm,bfirsh/swarm,JimGalasyn/docker.github.io,therealbill/swarm,gradywang/swarm,danix800/docker.github.io,akerbis/armhf-swarm,alexisbellido/docker.github.io,raoofm/swarm,joaofnfernandes/docker.github.io,londoncalling/docker.github.io,liubin/swarm,BSWANG/swarm,kyhavlov/swarm,SivagnanamCiena/swarm,docker-zh/docker.github.io,marsmensch/swarm,rchicoli/swarm,alexisbellido/docker.github.io,zkcrescent/swarm,denverdino/docker.github.io,dnephin/swarm,ejholmes/swarm,dnephin/swarm,johnstep/docker.github.io,docker/docker.github.io,JimGalasyn/docker.github.io,allencloud/swarm,rillig/docker.github.io,snrism/swarm,gradywang/swarm,CodeNow/swarm,denverdino/denverdino.github.io,riuvshin/swarm,resouer/swarm,linecheng/swarm,troy0820/docker.github.io,pdevine/swarm,sfsmithcha/swarm,aidora/pisces,beni55/swarm-1,EderRoger/swarm,vlajos/swarm,therealbill/swarm,iaintshine/swarm,gdevillele/docker.github.io,jzwlqx/denverdino.github.io,londoncalling/docker.github.io,gdevillele/docker.github.io,rchicoli/swarm,auzias/swarm,rancher/swarm,vieux/swarm,pssahi/swarm,tangkun75/swarm,danix800/docker.github.io,sanscontext/docker.github.io,ezrasilvera/SwarmACLs,shahankhatch/swarm,phiroict/docker,rillig/docker.github.io,gonkulator/swarm,sanscontext/docker.github.io,aluzzardi/swarm,bdwill/docker.github.io,CiaranCostello/swarm,FreedomWangLi/swarm,BSWANG/denverdino.github.io,troy0820/docker.github.io,londoncalling/docker.github.io,johnstep/docker.github.io,denverdino/denverdino.github.io,ezrasilvera/swarm,mavenugo/swarm,bsmr-docker/swarm,francisbouvier/swarm,Spritekin/swarm,schmunk42/swarm,zkcrescent/swarm,ealang/swarm,aluzzardi/swarm,phiroict/docker,shin-/docker.github.io,srikalyan/swarm,menglingwei/denverdino.github.io,shot/swarm,ealang/swarm,BSWANG/denverdino.github.io,denverdino/denverdino.github.io,jimmyxian/swarm,FollowMyDev/swarm,jimenez/swarm,LukasBacigal/swarm,Aorjoa/swarm,danix800/docker.github.io,johnstep/docker.github.io,megamsys/swarm,krystism/swarm,joeuo/docker.github.io,joeuo/docker.github.io,christophelec/swarm,danix800/docker.github.io,mountkin/swarm,tnachen/swarm,menglingwei/denverdino.github.io,jimmycmh/swarm,bfirsh/swarm,docker/docker.github.io,shubheksha/docker.github.io,pdevine/swarm,anweiss/docker.github.io,errordeveloper/swarm,BSWANG/denverdino.github.io,joaofnfernandes/docker.github.io,affo/swarm,LuisBosquez/docker.github.io,shakamunyi/swarm,docker-zh/docker.github.io,parapsyche/swarm,tangkun75/swarm,londoncalling/docker.github.io,anweiss/docker.github.io,denverdino/docker.github.io,alexisbellido/docker.github.io,bpradipt/swarm,polyverse-security/swarm,thaJeztah/docker.github.io,shahankhatch/swarm,CodeNow/swarm,u2mejc/swarm,atlassian/swarm,phiroict/docker,ricca742/swarm,u2mejc/swarm,polyverse-security/swarm,vieux/swarm,shubheksha/docker.github.io,BSWANG/swarm,affo/swarm,beni55/swarm-1,cgvarela/swarm,menglingwei/denverdino.github.io,rajdeepd/swarm,phiroict/docker,BSWANG/denverdino.github.io,bdwill/docker.github.io,resouer/swarm,rav121/swarm,denverdino/swarm,PeoplePerHour/libswarm,denverdino/swarm-1,LuisBosquez/docker.github.io,cgvarela/swarm,anweiss/docker.github.io,adouang/swarm,sanscontext/docker.github.io,riuvshin/swarm,alexisbellido/docker.github.io,ch3lo/swarm,everett-toews/swarm,JimGalasyn/docker.github.io,denverdino/docker.github.io,aduermael/docker.github.io,rillig/docker.github.io,deis/swarm,bdwill/docker.github.io,aduermael/docker.github.io,auzias/swarm,jdamick/swarm,doronp/swarm,moxiegirl/swarm,jzwlqx/denverdino.github.io,docker-zh/docker.github.io,qianzhangxa/swarm,deis/swarm,ezrasilvera/swarm,LukasBacigal/swarm,barais/swarm,joeuo/docker.github.io,tranceitionalMynd/swarm,shubheksha/docker.github.io,anweiss/docker.github.io,Aorjoa/swarm,troy0820/docker.github.io,bpradipt/swarm,fugr/swarm,docker/docker.github.io,chanwit/swarm,unodba/swarm,echupriyanov/swarm,docker/docker.github.io,ch3lo/swarm,chanwit/swarm,CiaranCostello/swarm,rav121/swarm,pssahi/swarm,errordeveloper/swarm,NunoEdgarGub1/swarm,adouang/swarm,denverdino/docker.github.io,liubin/swarm,MHBauer/swarm,LuisBosquez/docker.github.io,dims/swarm,swarm-hooks/swarm,shubheksha/docker.github.io,thaJeztah/docker.github.io,kunalkushwaha/swarm,denverdino/swarm,echupriyanov/swarm,ehazlett/swarm,mrjana/swarm,thaJeztah/docker.github.io,jzwlqx/denverdino.github.io,jay-lau/swarm,xFragger/swarm,anweiss/docker.github.io,phiroict/docker,dims/swarm,megamsys/swarm,shakamunyi/swarm,jimmycmh/swarm,jay-lau/swarm,troy0820/docker.github.io,rutulpatel/swarm,yp-engineering/swarm,jzwlqx/denverdino.github.io,rajdeepd/swarm,francisbouvier/swarm,snrism/swarm,xFragger/swarm,iaintshine/swarm,christophelec/swarm,LuisBosquez/docker.github.io,PeoplePerHour/libswarm,allencloud/swarm,fugr/swarm,alexisbellido/docker.github.io,denverdino/swarm-1,morpheyesh/swarm,shubheksha/docker.github.io,joaofnfernandes/docker.github.io,FreedomWangLi/swarm,mgoelzer/swarm,morpheyesh/swarm,jeffjen/swarm,shin-/docker.github.io